home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / Files.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  84KB  |  2,666 lines

  1. /*
  2.      File:        Files.h
  3.  
  4.      Contains:    File Manager (HFS and MFS) Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __FILES__
  19. #define __FILES__
  20.  
  21. #ifndef __TYPES__
  22. #include <Types.h>
  23. #endif
  24. #ifndef __MIXEDMODE__
  25. #include <MixedMode.h>
  26. #endif
  27. #ifndef __OSUTILS__
  28. #include <OSUtils.h>
  29. #endif
  30. #if !OLDROUTINELOCATIONS
  31. #ifndef __FINDER__
  32. #include <Finder.h>
  33. #endif
  34. #endif
  35.  
  36. #ifdef __cplusplus
  37. extern "C" {
  38. #endif
  39.  
  40. #if PRAGMA_IMPORT_SUPPORTED
  41. #pragma import on
  42. #endif
  43.  
  44. #if PRAGMA_ALIGN_SUPPORTED
  45. #pragma options align=mac68k
  46. #endif
  47.  
  48. #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
  49.  
  50. enum {
  51.     fsAtMark                    = 0,
  52.     fsCurPerm                    = 0,
  53.     fsRdPerm                    = 1,
  54.     fInvisible                    = 16384,
  55.     fsWrPerm                    = 2,
  56.     fsRdWrPerm                    = 3,
  57.     fsRdWrShPerm                = 4,
  58.     fsFromStart                    = 1,
  59.     fsFromLEOF                    = 2,
  60.     fsFromMark                    = 3,
  61.     rdVerify                    = 64,
  62.     ioMapBuffer                    = 4,
  63.     ioModeReserved                = 8,
  64.     ioDirFlg                    = 4,                            /* see IM IV-125 */
  65.     ioDirMask                    = 0x10,
  66.     fsRtParID                    = 1,
  67.     fsRtDirID                    = 2
  68. };
  69.  
  70. #if OLDROUTINELOCATIONS
  71. /* Finder Constants */
  72.  
  73. enum {
  74.     fOnDesk                        = 1,
  75.     fHasBundle                    = 8192,
  76.     fTrash                        = -3,
  77.     fDesktop                    = -2,
  78.     fDisk                        = 0
  79. };
  80.  
  81. #endif
  82.  
  83. enum {
  84.                                                                 /* CatSearch SearchBits Constants */
  85.     fsSBPartialName                = 1,
  86.     fsSBFullName                = 2,
  87.     fsSBFlAttrib                = 4,
  88.     fsSBFlFndrInfo                = 8,
  89.     fsSBFlLgLen                    = 32,
  90.     fsSBFlPyLen                    = 64,
  91.     fsSBFlRLgLen                = 128,
  92.     fsSBFlRPyLen                = 256,
  93.     fsSBFlCrDat                    = 512,
  94.     fsSBFlMdDat                    = 1024,
  95.     fsSBFlBkDat                    = 2048,
  96.     fsSBFlXFndrInfo                = 4096,
  97.     fsSBFlParID                    = 8192,
  98.     fsSBNegate                    = 16384,
  99.     fsSBDrUsrWds                = 8,
  100.     fsSBDrNmFls                    = 16,
  101.     fsSBDrCrDat                    = 512,
  102.     fsSBDrMdDat                    = 1024,
  103.     fsSBDrBkDat                    = 2048,
  104.     fsSBDrFndrInfo                = 4096,                            /* bit values for the above */
  105.     fsSBPartialNameBit            = 0,                            /*ioFileName points to a substring*/
  106.     fsSBFullNameBit                = 1,                            /*ioFileName points to a match string*/
  107.     fsSBFlAttribBit                = 2,                            /*search includes file attributes*/
  108.     fsSBFlFndrInfoBit            = 3,                            /*search includes finder info*/
  109.     fsSBFlLgLenBit                = 5,                            /*search includes data logical length*/
  110.     fsSBFlPyLenBit                = 6,                            /*search includes data physical length*/
  111.     fsSBFlRLgLenBit                = 7,                            /*search includes resource logical length*/
  112.     fsSBFlRPyLenBit                = 8,                            /*search includes resource physical length*/
  113.     fsSBFlCrDatBit                = 9,                            /*search includes create date*/
  114.     fsSBFlMdDatBit                = 10,                            /*search includes modification date*/
  115.     fsSBFlBkDatBit                = 11,                            /*search includes backup date*/
  116.     fsSBFlXFndrInfoBit            = 12,                            /*search includes extended finder info*/
  117.     fsSBFlParIDBit                = 13,                            /*search includes file's parent ID*/
  118.     fsSBNegateBit                = 14,                            /*return all non-matches*/
  119.     fsSBDrUsrWdsBit                = 3,                            /*search includes directory finder info*/
  120.     fsSBDrNmFlsBit                = 4,                            /*search includes directory valence*/
  121.     fsSBDrCrDatBit                = 9,                            /*directory-named version of fsSBFlCrDatBit*/
  122.     fsSBDrMdDatBit                = 10,                            /*directory-named version of fsSBFlMdDatBit*/
  123.     fsSBDrBkDatBit                = 11,                            /*directory-named version of fsSBFlBkDatBit*/
  124.     fsSBDrFndrInfoBit            = 12                            /*directory-named version of fsSBFlXFndrInfoBit*/
  125. };
  126.  
  127.  
  128. enum {
  129.     fsSBDrParID                    = 8192,
  130.     fsSBDrParIDBit                = 13,                            /*directory-named version of fsSBFlParIDBit*/
  131.                                                                 /* vMAttrib (GetVolParms) bit position constants */
  132.     bLimitFCBs                    = 31,
  133.     bLocalWList                    = 30,
  134.     bNoMiniFndr                    = 29,
  135.     bNoVNEdit                    = 28,
  136.     bNoLclSync                    = 27,
  137.     bTrshOffLine                = 26,
  138.     bNoSwitchTo                    = 25,
  139.     bNoDeskItems                = 20,
  140.     bNoBootBlks                    = 19,
  141.     bAccessCntl                    = 18,
  142.     bNoSysDir                    = 17,
  143.     bHasExtFSVol                = 16,
  144.     bHasOpenDeny                = 15,
  145.     bHasCopyFile                = 14,
  146.     bHasMoveRename                = 13,
  147.     bHasDesktopMgr                = 12,
  148.     bHasShortName                = 11,
  149.     bHasFolderLock                = 10,
  150.     bHasPersonalAccessPrivileges = 9
  151. };
  152.  
  153.  
  154. enum {
  155.     bHasUserGroupList            = 8,
  156.     bHasCatSearch                = 7,
  157.     bHasFileIDs                    = 6,
  158.     bHasBTreeMgr                = 5,
  159.     bHasBlankAccessPrivileges    = 4,                            /* Desktop Database icon Constants */
  160.     kLargeIcon                    = 1,
  161.     kLarge4BitIcon                = 2,
  162.     kLarge8BitIcon                = 3,
  163.     kSmallIcon                    = 4,
  164.     kSmall4BitIcon                = 5,
  165.     kSmall8BitIcon                = 6,
  166.     kLargeIconSize                = 256,
  167.     kLarge4BitIconSize            = 512,
  168.     kLarge8BitIconSize            = 1024,
  169.     kSmallIconSize                = 64,
  170.     kSmall4BitIconSize            = 128,
  171.     kSmall8BitIconSize            = 256,                            /* Foreign Privilege Model Identifiers */
  172.     fsUnixPriv                    = 1,                            /* Authentication Constants */
  173.     kNoUserAuthentication        = 1,
  174.     kPassword                    = 2,
  175.     kEncryptPassword            = 3,
  176.     kTwoWayEncryptPassword        = 6
  177. };
  178.  
  179. /* mapping codes (ioObjType) for MapName & MapID */
  180.  
  181. enum {
  182.     kOwnerID2Name                = 1,
  183.     kGroupID2Name                = 2,
  184.     kOwnerName2ID                = 3,
  185.     kGroupName2ID                = 4,                            /* types of oj object to be returned (ioObjType) for _GetUGEntry */
  186.     kReturnNextUser                = 1,
  187.     kReturnNextGroup            = 2,
  188.     kReturnNextUG                = 3
  189. };
  190.  
  191. #if OLDROUTINELOCATIONS
  192. /*
  193.     The following structures are being moved to Finder.i because
  194.     they are Finder centric.  See Finder constants above.
  195. */
  196. struct FInfo {
  197.     OSType                             fdType;                        /*the type of the file*/
  198.     OSType                             fdCreator;                    /*file's creator*/
  199.     unsigned short                     fdFlags;                    /*flags ex. hasbundle,invisible,locked, etc.*/
  200.     Point                             fdLocation;                    /*file's location in folder*/
  201.     short                             fdFldr;                        /*folder containing file*/
  202. };
  203. typedef struct FInfo FInfo;
  204.  
  205. struct FXInfo {
  206.     short                             fdIconID;                    /*Icon ID*/
  207.     short                             fdUnused[3];                /*unused but reserved 6 bytes*/
  208.     SInt8                             fdScript;                    /*Script flag and number*/
  209.     SInt8                             fdXFlags;                    /*More flag bits*/
  210.     short                             fdComment;                    /*Comment ID*/
  211.     long                             fdPutAway;                    /*Home Dir ID*/
  212. };
  213. typedef struct FXInfo FXInfo;
  214.  
  215. struct DInfo {
  216.     Rect                             frRect;                        /*folder rect*/
  217.     unsigned short                     frFlags;                    /*Flags*/
  218.     Point                             frLocation;                    /*folder location*/
  219.     short                             frView;                        /*folder view*/
  220. };
  221. typedef struct DInfo DInfo;
  222.  
  223. struct DXInfo {
  224.     Point                             frScroll;                    /*scroll position*/
  225.     long                             frOpenChain;                /*DirID chain of open folders*/
  226.     SInt8                             frScript;                    /*Script flag and number*/
  227.     SInt8                             frXFlags;                    /*More flag bits*/
  228.     short                             frComment;                    /*comment*/
  229.     long                             frPutAway;                    /*DirID*/
  230. };
  231. typedef struct DXInfo DXInfo;
  232.  
  233. #endif
  234. struct GetVolParmsInfoBuffer {
  235.     short                             vMVersion;                    /*version number*/
  236.     long                             vMAttrib;                    /*bit vector of attributes (see vMAttrib constants)*/
  237.     Handle                             vMLocalHand;                /*handle to private data*/
  238.     long                             vMServerAdr;                /*AppleTalk server address or zero*/
  239.     long                             vMVolumeGrade;                /*approx. speed rating or zero if unrated*/
  240.     short                             vMForeignPrivID;            /*foreign privilege model supported or zero if none*/
  241. };
  242. typedef struct GetVolParmsInfoBuffer GetVolParmsInfoBuffer;
  243.  
  244. typedef union ParamBlockRec ParamBlockRec;
  245. typedef ParamBlockRec *ParmBlkPtr;
  246. /*
  247.         This ProcPtr uses register based parameters on the 68k and cannot
  248.         be written in or called from a high-level language without the help of
  249.         mixed mode or assembly glue.
  250.  
  251.             typedef pascal void (*IOCompletionProcPtr)(ParmBlkPtr paramBlock);
  252.  
  253. */
  254.  
  255. #if GENERATINGCFM
  256. typedef UniversalProcPtr IOCompletionUPP;
  257. #else
  258. typedef Register68kProcPtr IOCompletionUPP;
  259. #endif
  260. struct IOParam {
  261.     QElemPtr                         qLink;                        /*queue link in header*/
  262.     short                             qType;                        /*type byte for safety check*/
  263.     short                             ioTrap;                        /*FS: the Trap*/
  264.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  265.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  266.     OSErr                             ioResult;                    /*result code*/
  267.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  268.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  269.     short                             ioRefNum;                    /*refNum for I/O operation*/
  270.     SInt8                             ioVersNum;                    /*version number*/
  271.     SInt8                             ioPermssn;                    /*Open: permissions (byte)*/
  272.     Ptr                             ioMisc;                        /*Rename: new name (GetEOF,SetEOF: logical end of file) (Open: optional ptr to buffer) (SetFileType: new type)*/
  273.     Ptr                             ioBuffer;                    /*data buffer Ptr*/
  274.     long                             ioReqCount;                    /*requested byte count; also = ioNewDirID*/
  275.     long                             ioActCount;                    /*actual byte count completed*/
  276.     short                             ioPosMode;                    /*initial file positioning*/
  277.     long                             ioPosOffset;                /*file position offset*/
  278. };
  279. typedef struct IOParam IOParam;
  280.  
  281. typedef IOParam *IOParamPtr;
  282. struct FileParam {
  283.     QElemPtr                         qLink;                        /*queue link in header*/
  284.     short                             qType;                        /*type byte for safety check*/
  285.     short                             ioTrap;                        /*FS: the Trap*/
  286.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  287.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  288.     OSErr                             ioResult;                    /*result code*/
  289.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  290.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  291.     short                             ioFRefNum;                    /*reference number*/
  292.     SInt8                             ioFVersNum;                    /*version number*/
  293.     SInt8                             filler1;
  294.     short                             ioFDirIndex;                /*GetFInfo directory index*/
  295.     SInt8                             ioFlAttrib;                    /*GetFInfo: in-use bit=7, lock bit=0*/
  296.     SInt8                             ioFlVersNum;                /*file version number*/
  297.     FInfo                             ioFlFndrInfo;                /*user info*/
  298.     unsigned long                     ioFlNum;                    /*GetFInfo: file number; TF- ioDirID*/
  299.     unsigned short                     ioFlStBlk;                    /*start file block (0 if none)*/
  300.     long                             ioFlLgLen;                    /*logical length (EOF)*/
  301.     long                             ioFlPyLen;                    /*physical length*/
  302.     unsigned short                     ioFlRStBlk;                    /*start block rsrc fork*/
  303.     long                             ioFlRLgLen;                    /*file logical length rsrc fork*/
  304.     long                             ioFlRPyLen;                    /*file physical length rsrc fork*/
  305.     unsigned long                     ioFlCrDat;                    /*file creation date& time (32 bits in secs)*/
  306.     unsigned long                     ioFlMdDat;                    /*last modified date and time*/
  307. };
  308. typedef struct FileParam FileParam;
  309.  
  310. typedef FileParam *FileParamPtr;
  311. struct VolumeParam {
  312.     QElemPtr                         qLink;                        /*queue link in header*/
  313.     short                             qType;                        /*type byte for safety check*/
  314.     short                             ioTrap;                        /*FS: the Trap*/
  315.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  316.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  317.     OSErr                             ioResult;                    /*result code*/
  318.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  319.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  320.     long                             filler2;
  321.     short                             ioVolIndex;                    /*volume index number*/
  322.     unsigned long                     ioVCrDate;                    /*creation date and time*/
  323.     unsigned long                     ioVLsBkUp;                    /*last backup date and time*/
  324.     unsigned short                     ioVAtrb;                    /*volume attrib*/
  325.     unsigned short                     ioVNmFls;                    /*number of files in directory*/
  326.     unsigned short                     ioVDirSt;                    /*start block of file directory*/
  327.     short                             ioVBlLn;                    /*GetVolInfo: length of dir in blocks*/
  328.     unsigned short                     ioVNmAlBlks;                /*for compatibilty ioVNmAlBlks * ioVAlBlkSiz <= 2 GB*/
  329.     long                             ioVAlBlkSiz;                /*for compatibilty ioVAlBlkSiz is <= $0000FE00 (65,024)*/
  330.     long                             ioVClpSiz;                    /*GetVolInfo: bytes to allocate at a time*/
  331.     unsigned short                     ioAlBlSt;                    /*starting disk(512-byte) block in block map*/
  332.     unsigned long                     ioVNxtFNum;                    /*GetVolInfo: next free file number*/
  333.     unsigned short                     ioVFrBlk;                    /*GetVolInfo: # free alloc blks for this vol*/
  334. };
  335. typedef struct VolumeParam VolumeParam;
  336.  
  337. typedef VolumeParam *VolumeParamPtr;
  338. struct CntrlParam {
  339.     QElemPtr                         qLink;                        /*queue link in header*/
  340.     short                             qType;                        /*type byte for safety check*/
  341.     short                             ioTrap;                        /*FS: the Trap*/
  342.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  343.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  344.     OSErr                             ioResult;                    /*result code*/
  345.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  346.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  347.     short                             ioCRefNum;                    /*refNum for I/O operation*/
  348.     short                             csCode;                        /*word for control status code*/
  349.     short                             csParam[11];                /*operation-defined parameters*/
  350. };
  351. typedef struct CntrlParam CntrlParam;
  352.  
  353. typedef CntrlParam *CntrlParamPtr;
  354. struct SlotDevParam {
  355.     QElemPtr                         qLink;                        /*queue link in header*/
  356.     short                             qType;                        /*type byte for safety check*/
  357.     short                             ioTrap;                        /*FS: the Trap*/
  358.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  359.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  360.     OSErr                             ioResult;                    /*result code*/
  361.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  362.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  363.     short                             ioSRefNum;
  364.     SInt8                             ioSVersNum;
  365.     SInt8                             ioSPermssn;
  366.     Ptr                             ioSMix;
  367.     short                             ioSFlags;
  368.     SInt8                             ioSlot;
  369.     SInt8                             ioID;
  370. };
  371. typedef struct SlotDevParam SlotDevParam;
  372.  
  373. typedef SlotDevParam *SlotDevParamPtr;
  374. struct MultiDevParam {
  375.     QElemPtr                         qLink;                        /*queue link in header*/
  376.     short                             qType;                        /*type byte for safety check*/
  377.     short                             ioTrap;                        /*FS: the Trap*/
  378.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  379.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  380.     OSErr                             ioResult;                    /*result code*/
  381.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  382.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  383.     short                             ioMRefNum;
  384.     SInt8                             ioMVersNum;
  385.     SInt8                             ioMPermssn;
  386.     Ptr                             ioMMix;
  387.     short                             ioMFlags;
  388.     Ptr                             ioSEBlkPtr;
  389. };
  390. typedef struct MultiDevParam MultiDevParam;
  391.  
  392. typedef MultiDevParam *MultiDevParamPtr;
  393. union ParamBlockRec {
  394.     IOParam                         ioParam;
  395.     FileParam                         fileParam;
  396.     VolumeParam                     volumeParam;
  397.     CntrlParam                         cntrlParam;
  398.     SlotDevParam                     slotDevParam;
  399.     MultiDevParam                     multiDevParam;
  400. };
  401.  
  402. struct HFileInfo {
  403.     QElemPtr                         qLink;                        /*queue link in header*/
  404.     short                             qType;                        /*type byte for safety check*/
  405.     short                             ioTrap;                        /*FS: the Trap*/
  406.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  407.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  408.     OSErr                             ioResult;                    /*result code*/
  409.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  410.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  411.     short                             ioFRefNum;
  412.     SInt8                             ioFVersNum;
  413.     SInt8                             filler1;
  414.     short                             ioFDirIndex;
  415.     SInt8                             ioFlAttrib;
  416.     SInt8                             ioACUser;
  417.     FInfo                             ioFlFndrInfo;
  418.     long                             ioDirID;
  419.     unsigned short                     ioFlStBlk;
  420.     long                             ioFlLgLen;
  421.     long                             ioFlPyLen;
  422.     unsigned short                     ioFlRStBlk;
  423.     long                             ioFlRLgLen;
  424.     long                             ioFlRPyLen;
  425.     unsigned long                     ioFlCrDat;
  426.     unsigned long                     ioFlMdDat;
  427.     unsigned long                     ioFlBkDat;
  428.     FXInfo                             ioFlXFndrInfo;
  429.     long                             ioFlParID;
  430.     long                             ioFlClpSiz;
  431. };
  432. typedef struct HFileInfo HFileInfo;
  433.  
  434. struct DirInfo {
  435.     QElemPtr                         qLink;                        /*queue link in header*/
  436.     short                             qType;                        /*type byte for safety check*/
  437.     short                             ioTrap;                        /*FS: the Trap*/
  438.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  439.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  440.     OSErr                             ioResult;                    /*result code*/
  441.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  442.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  443.     short                             ioFRefNum;
  444.     SInt8                             ioFVersNum;
  445.     SInt8                             filler1;
  446.     short                             ioFDirIndex;
  447.     SInt8                             ioFlAttrib;
  448.     SInt8                             ioACUser;
  449.     DInfo                             ioDrUsrWds;
  450.     long                             ioDrDirID;
  451.     unsigned short                     ioDrNmFls;
  452.     short                             filler3[9];
  453.     unsigned long                     ioDrCrDat;
  454.     unsigned long                     ioDrMdDat;
  455.     unsigned long                     ioDrBkDat;
  456.     DXInfo                             ioDrFndrInfo;
  457.     long                             ioDrParID;
  458. };
  459. typedef struct DirInfo DirInfo;
  460.  
  461. union CInfoPBRec {
  462.     HFileInfo                         hFileInfo;
  463.     DirInfo                         dirInfo;
  464. };
  465. typedef union CInfoPBRec CInfoPBRec;
  466.  
  467. typedef CInfoPBRec *CInfoPBPtr;
  468. /* Catalog position record */
  469. struct CatPositionRec {
  470.     long                             initialize;
  471.     short                             priv[6];
  472. };
  473. typedef struct CatPositionRec CatPositionRec;
  474.  
  475. #endif
  476. #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
  477. struct FSSpec {
  478.     short                             vRefNum;
  479.     long                             parID;
  480.     Str63                             name;
  481. };
  482. typedef struct FSSpec FSSpec;
  483.  
  484. typedef FSSpec *FSSpecPtr;
  485. typedef FSSpecPtr *FSSpecHandle;
  486. /* pointer to array of FSSpecs */
  487. typedef FSSpecPtr FSSpecArrayPtr;
  488. /*
  489.  The only difference between "const FSSpec*" and "ConstFSSpecPtr" is 
  490.    that as a parameter, ConstFSSpecPtr is allowed to be NULL 
  491. */
  492. typedef const FSSpec *ConstFSSpecPtr;
  493. #endif
  494. #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
  495. /*
  496.  The following are structures to be filled out with the _GetVolMountInfo call
  497.  and passed back into the _VolumeMount call for external file system mounts. 
  498. */
  499. /* the "signature" of the file system */
  500. typedef OSType VolumeType;
  501.  
  502. enum {
  503.                                                                 /* the signature for AppleShare */
  504.     AppleShareMediaType            = 'afpm'
  505. };
  506.  
  507. #if !OLDROUTINELOCATIONS
  508. struct VolMountInfoHeader {
  509.     short                             length;                        /* length of location data (including self) */
  510.     VolumeType                         media;                        /* type of media.  Variable length data follows */
  511. };
  512. typedef struct VolMountInfoHeader VolMountInfoHeader;
  513.  
  514. typedef VolMountInfoHeader *VolMountInfoPtr;
  515. /*
  516.  The new volume mount info record.  The old one is included for compatibility. 
  517.     the new record allows access by foriegn filesystems writers to the flags 
  518.     portion of the record. This portion is now public.  
  519. */
  520. struct VolumeMountInfoHeader {
  521.     short                             length;                        /* length of location data (including self) */
  522.     VolumeType                         media;                        /* type of media (must be registered with Apple) */
  523.     short                             flags;                        /* volume mount flags. Variable length data follows */
  524. };
  525. typedef struct VolumeMountInfoHeader VolumeMountInfoHeader;
  526.  
  527. typedef VolumeMountInfoHeader *VolumeMountInfoHeaderPtr;
  528. /*    additional volume mount flags */
  529.  
  530. enum {
  531.     volMountInteractBit            = 15,                            /* Input to VolumeMount: If set, it's OK for the file system */
  532.     volMountInteractMask        = 0x8000,                        /* to perform user interaction to mount the volume */
  533.     volMountChangedBit            = 14,                            /* Output from VoumeMount: If set, the volume was mounted, but */
  534.     volMountChangedMask            = 0x4000,                        /* the volume mounting information record needs to be updated. */
  535.     volMountFSReservedMask        = 0x00FF,                        /* bits 0-7 are defined by each file system for its own use */
  536.     volMountSysReservedMask        = 0xFF00                        /* bits 8-15 are reserved for Apple system use */
  537. };
  538.  
  539. #endif
  540. struct AFPVolMountInfo {
  541.     short                             length;                        /* length of location data (including self) */
  542.     VolumeType                         media;                        /* type of media */
  543.     short                             flags;                        /* bits for no messages, no reconnect */
  544.     SInt8                             nbpInterval;                /* NBP Interval parameter (IM2, p.322) */
  545.     SInt8                             nbpCount;                    /* NBP Interval parameter (IM2, p.322) */
  546.     short                             uamType;                    /* User Authentication Method */
  547.     short                             zoneNameOffset;                /* short positive offset from start of struct to Zone Name */
  548.     short                             serverNameOffset;            /* offset to pascal Server Name string */
  549.     short                             volNameOffset;                /* offset to pascal Volume Name string */
  550.     short                             userNameOffset;                /* offset to pascal User Name string */
  551.     short                             userPasswordOffset;            /* offset to pascal User Password string */
  552.     short                             volPasswordOffset;            /* offset to pascal Volume Password string */
  553.     char                             AFPData[144];                /* variable length data may follow */
  554. };
  555. typedef struct AFPVolMountInfo AFPVolMountInfo;
  556.  
  557. typedef AFPVolMountInfo *AFPVolMountInfoPtr;
  558. struct DTPBRec {
  559.     QElemPtr                         qLink;                        /*queue link in header*/
  560.     short                             qType;                        /*type byte for safety check*/
  561.     short                             ioTrap;                        /*FS: the Trap*/
  562.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  563.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  564.     OSErr                             ioResult;                    /*result code*/
  565.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  566.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  567.     short                             ioDTRefNum;                    /* desktop refnum */
  568.     short                             ioIndex;
  569.     long                             ioTagInfo;
  570.     Ptr                             ioDTBuffer;
  571.     long                             ioDTReqCount;
  572.     long                             ioDTActCount;
  573.     SInt8                             ioFiller1;
  574.     SInt8                             ioIconType;
  575.     short                             ioFiller2;
  576.     long                             ioDirID;
  577.     OSType                             ioFileCreator;
  578.     OSType                             ioFileType;
  579.     long                             ioFiller3;
  580.     long                             ioDTLgLen;
  581.     long                             ioDTPyLen;
  582.     short                             ioFiller4[14];
  583.     long                             ioAPPLParID;
  584. };
  585. typedef struct DTPBRec DTPBRec;
  586.  
  587. typedef DTPBRec *DTPBPtr;
  588. struct HIOParam {
  589.     QElemPtr                         qLink;                        /*queue link in header*/
  590.     short                             qType;                        /*type byte for safety check*/
  591.     short                             ioTrap;                        /*FS: the Trap*/
  592.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  593.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  594.     OSErr                             ioResult;                    /*result code*/
  595.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  596.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  597.     short                             ioRefNum;
  598.     SInt8                             ioVersNum;
  599.     SInt8                             ioPermssn;
  600.     Ptr                             ioMisc;
  601.     Ptr                             ioBuffer;
  602.     long                             ioReqCount;
  603.     long                             ioActCount;
  604.     short                             ioPosMode;
  605.     long                             ioPosOffset;
  606. };
  607. typedef struct HIOParam HIOParam;
  608.  
  609. typedef HIOParam *HIOParamPtr;
  610. struct HFileParam {
  611.     QElemPtr                         qLink;                        /*queue link in header*/
  612.     short                             qType;                        /*type byte for safety check*/
  613.     short                             ioTrap;                        /*FS: the Trap*/
  614.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  615.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  616.     OSErr                             ioResult;                    /*result code*/
  617.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  618.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  619.     short                             ioFRefNum;
  620.     SInt8                             ioFVersNum;
  621.     SInt8                             filler1;
  622.     short                             ioFDirIndex;
  623.     SInt8                             ioFlAttrib;
  624.     SInt8                             ioFlVersNum;
  625.     FInfo                             ioFlFndrInfo;
  626.     long                             ioDirID;
  627.     unsigned short                     ioFlStBlk;
  628.     long                             ioFlLgLen;
  629.     long                             ioFlPyLen;
  630.     unsigned short                     ioFlRStBlk;
  631.     long                             ioFlRLgLen;
  632.     long                             ioFlRPyLen;
  633.     unsigned long                     ioFlCrDat;
  634.     unsigned long                     ioFlMdDat;
  635. };
  636. typedef struct HFileParam HFileParam;
  637.  
  638. typedef HFileParam *HFileParamPtr;
  639. struct HVolumeParam {
  640.     QElemPtr                         qLink;                        /*queue link in header*/
  641.     short                             qType;                        /*type byte for safety check*/
  642.     short                             ioTrap;                        /*FS: the Trap*/
  643.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  644.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  645.     OSErr                             ioResult;                    /*result code*/
  646.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  647.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  648.     long                             filler2;
  649.     short                             ioVolIndex;
  650.     unsigned long                     ioVCrDate;
  651.     unsigned long                     ioVLsMod;
  652.     short                             ioVAtrb;
  653.     unsigned short                     ioVNmFls;
  654.     short                             ioVBitMap;
  655.     short                             ioAllocPtr;
  656.     unsigned short                     ioVNmAlBlks;
  657.     long                             ioVAlBlkSiz;
  658.     long                             ioVClpSiz;
  659.     short                             ioAlBlSt;
  660.     long                             ioVNxtCNID;
  661.     unsigned short                     ioVFrBlk;
  662.     unsigned short                     ioVSigWord;
  663.     short                             ioVDrvInfo;
  664.     short                             ioVDRefNum;
  665.     short                             ioVFSID;
  666.     unsigned long                     ioVBkUp;
  667.     unsigned short                     ioVSeqNum;
  668.     long                             ioVWrCnt;
  669.     long                             ioVFilCnt;
  670.     long                             ioVDirCnt;
  671.     long                             ioVFndrInfo[8];
  672. };
  673. typedef struct HVolumeParam HVolumeParam;
  674.  
  675. typedef HVolumeParam *HVolumeParamPtr;
  676.  
  677. enum {
  678.                                                                 /* Large Volume Constants */
  679.     kWidePosOffsetBit            = 8,
  680.     kMaximumBlocksIn4GB            = 0x007FFFFF
  681. };
  682.  
  683. struct XIOParam {
  684.     QElemPtr                         qLink;
  685.     short                             qType;
  686.     short                             ioTrap;
  687.     Ptr                             ioCmdAddr;
  688.     IOCompletionUPP                 ioCompletion;
  689.     OSErr                             ioResult;
  690.     StringPtr                         ioNamePtr;
  691.     short                             ioVRefNum;
  692.     short                             ioRefNum;
  693.     SInt8                             ioVersNum;
  694.     SInt8                             ioPermssn;
  695.     Ptr                             ioMisc;
  696.     Ptr                             ioBuffer;
  697.     long                             ioReqCount;
  698.     long                             ioActCount;
  699.     short                             ioPosMode;                    /* must have kUseWidePositioning bit set */
  700.     wide                             ioWPosOffset;                /* wide positioning offset */
  701. };
  702. typedef struct XIOParam XIOParam;
  703.  
  704. typedef XIOParam *XIOParamPtr;
  705. struct XVolumeParam {
  706.     QElemPtr                         qLink;
  707.     short                             qType;
  708.     short                             ioTrap;
  709.     Ptr                             ioCmdAddr;
  710.     IOCompletionUPP                 ioCompletion;
  711.     OSErr                             ioResult;
  712.     StringPtr                         ioNamePtr;
  713.     short                             ioVRefNum;
  714.     unsigned long                     ioXVersion;                    /* this XVolumeParam version (0) */
  715.     short                             ioVolIndex;
  716.     unsigned long                     ioVCrDate;
  717.     unsigned long                     ioVLsMod;
  718.     short                             ioVAtrb;
  719.     unsigned short                     ioVNmFls;
  720.     unsigned short                     ioVBitMap;
  721.     unsigned short                     ioAllocPtr;
  722.     unsigned short                     ioVNmAlBlks;
  723.     unsigned long                     ioVAlBlkSiz;
  724.     unsigned long                     ioVClpSiz;
  725.     unsigned short                     ioAlBlSt;
  726.     unsigned long                     ioVNxtCNID;
  727.     unsigned short                     ioVFrBlk;
  728.     unsigned short                     ioVSigWord;
  729.     short                             ioVDrvInfo;
  730.     short                             ioVDRefNum;
  731.     short                             ioVFSID;
  732.     unsigned long                     ioVBkUp;
  733.     short                             ioVSeqNum;
  734.     unsigned long                     ioVWrCnt;
  735.     unsigned long                     ioVFilCnt;
  736.     unsigned long                     ioVDirCnt;
  737.     long                             ioVFndrInfo[8];
  738.     UnsignedWide                     ioVTotalBytes;                /* total number of bytes on volume */
  739.     UnsignedWide                     ioVFreeBytes;                /* number of free bytes on volume */
  740. };
  741. typedef struct XVolumeParam XVolumeParam;
  742.  
  743. typedef XVolumeParam *XVolumeParamPtr;
  744. struct AccessParam {
  745.     QElemPtr                         qLink;                        /*queue link in header*/
  746.     short                             qType;                        /*type byte for safety check*/
  747.     short                             ioTrap;                        /*FS: the Trap*/
  748.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  749.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  750.     OSErr                             ioResult;                    /*result code*/
  751.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  752.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  753.     short                             filler3;
  754.     short                             ioDenyModes;                /*access rights data*/
  755.     short                             filler4;
  756.     SInt8                             filler5;
  757.     SInt8                             ioACUser;                    /*access rights for directory only*/
  758.     long                             filler6;
  759.     long                             ioACOwnerID;                /*owner ID*/
  760.     long                             ioACGroupID;                /*group ID*/
  761.     long                             ioACAccess;                    /*access rights*/
  762.     long                             ioDirID;
  763. };
  764. typedef struct AccessParam AccessParam;
  765.  
  766. typedef AccessParam *AccessParamPtr;
  767. struct ObjParam {
  768.     QElemPtr                         qLink;                        /*queue link in header*/
  769.     short                             qType;                        /*type byte for safety check*/
  770.     short                             ioTrap;                        /*FS: the Trap*/
  771.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  772.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  773.     OSErr                             ioResult;                    /*result code*/
  774.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  775.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  776.     short                             filler7;
  777.     short                             ioObjType;                    /*function code*/
  778.     StringPtr                         ioObjNamePtr;                /*ptr to returned creator/group name*/
  779.     long                             ioObjID;                    /*creator/group ID*/
  780. };
  781. typedef struct ObjParam ObjParam;
  782.  
  783. typedef ObjParam *ObjParamPtr;
  784. struct CopyParam {
  785.     QElemPtr                         qLink;                        /*queue link in header*/
  786.     short                             qType;                        /*type byte for safety check*/
  787.     short                             ioTrap;                        /*FS: the Trap*/
  788.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  789.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  790.     OSErr                             ioResult;                    /*result code*/
  791.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  792.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  793.     short                             ioDstVRefNum;                /*destination vol identifier*/
  794.     short                             filler8;
  795.     StringPtr                         ioNewName;                    /*ptr to destination pathname*/
  796.     StringPtr                         ioCopyName;                    /*ptr to optional name*/
  797.     long                             ioNewDirID;                    /*destination directory ID*/
  798.     long                             filler14;
  799.     long                             filler15;
  800.     long                             ioDirID;
  801. };
  802. typedef struct CopyParam CopyParam;
  803.  
  804. typedef CopyParam *CopyParamPtr;
  805. struct WDParam {
  806.     QElemPtr                         qLink;                        /*queue link in header*/
  807.     short                             qType;                        /*type byte for safety check*/
  808.     short                             ioTrap;                        /*FS: the Trap*/
  809.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  810.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  811.     OSErr                             ioResult;                    /*result code*/
  812.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  813.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  814.     short                             filler9;
  815.     short                             ioWDIndex;
  816.     long                             ioWDProcID;
  817.     short                             ioWDVRefNum;
  818.     short                             filler10;
  819.     long                             filler11;
  820.     long                             filler12;
  821.     long                             filler13;
  822.     long                             ioWDDirID;
  823. };
  824. typedef struct WDParam WDParam;
  825.  
  826. typedef WDParam *WDParamPtr;
  827. struct FIDParam {
  828.     QElemPtr                         qLink;                        /*queue link in header*/
  829.     short                             qType;                        /*type byte for safety check*/
  830.     short                             ioTrap;                        /*FS: the Trap*/
  831.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  832.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  833.     OSErr                             ioResult;                    /*result code*/
  834.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  835.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  836.     long                             filler14;
  837.     StringPtr                         ioDestNamePtr;                /* dest file name */
  838.     long                             filler15;
  839.     long                             ioDestDirID;                /* dest file's directory id */
  840.     long                             filler16;
  841.     long                             filler17;
  842.     long                             ioSrcDirID;                    /* source file's directory id */
  843.     short                             filler18;
  844.     long                             ioFileID;                    /* file ID */
  845. };
  846. typedef struct FIDParam FIDParam;
  847.  
  848. typedef FIDParam *FIDParamPtr;
  849. struct ForeignPrivParam {
  850.     QElemPtr                         qLink;                        /*queue link in header*/
  851.     short                             qType;                        /*type byte for safety check*/
  852.     short                             ioTrap;                        /*FS: the Trap*/
  853.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  854.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  855.     OSErr                             ioResult;                    /*result code*/
  856.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  857.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  858.     long                             ioFiller21;
  859.     long                             ioFiller22;
  860.     Ptr                             ioForeignPrivBuffer;
  861.     long                             ioForeignPrivActCount;
  862.     long                             ioForeignPrivReqCount;
  863.     long                             ioFiller23;
  864.     long                             ioForeignPrivDirID;
  865.     long                             ioForeignPrivInfo1;
  866.     long                             ioForeignPrivInfo2;
  867.     long                             ioForeignPrivInfo3;
  868.     long                             ioForeignPrivInfo4;
  869. };
  870. typedef struct ForeignPrivParam ForeignPrivParam;
  871.  
  872. typedef ForeignPrivParam *ForeignPrivParamPtr;
  873. struct CSParam {
  874.     QElemPtr                         qLink;                        /*queue link in header*/
  875.     short                             qType;                        /*type byte for safety check*/
  876.     short                             ioTrap;                        /*FS: the Trap*/
  877.     Ptr                             ioCmdAddr;                    /*FS: address to dispatch to*/
  878.     IOCompletionUPP                 ioCompletion;                /*completion routine addr (0 for synch calls)*/
  879.     OSErr                             ioResult;                    /*result code*/
  880.     StringPtr                         ioNamePtr;                    /*ptr to Vol:FileName string*/
  881.     short                             ioVRefNum;                    /*volume refnum (DrvNum for Eject and MountVol)*/
  882.     FSSpecPtr                         ioMatchPtr;                    /* match array */
  883.     long                             ioReqMatchCount;            /* maximum allowable matches */
  884.     long                             ioActMatchCount;            /* actual match count */
  885.     long                             ioSearchBits;                /* search criteria selector */
  886.     CInfoPBPtr                         ioSearchInfo1;                /* search values and range lower bounds */
  887.     CInfoPBPtr                         ioSearchInfo2;                /* search values and range upper bounds */
  888.     long                             ioSearchTime;                /* length of time to run search */
  889.     CatPositionRec                     ioCatPosition;                /* current position in the catalog */
  890.     Ptr                             ioOptBuffer;                /* optional performance enhancement buffer */
  891.     long                             ioOptBufSize;                /* size of buffer pointed to by ioOptBuffer */
  892. };
  893. typedef struct CSParam CSParam;
  894.  
  895. typedef CSParam *CSParamPtr;
  896. union HParamBlockRec {
  897.     HIOParam                         ioParam;
  898.     HFileParam                         fileParam;
  899.     HVolumeParam                     volumeParam;
  900.     AccessParam                     accessParam;
  901.     ObjParam                         objParam;
  902.     CopyParam                         copyParam;
  903.     WDParam                         wdParam;
  904.     FIDParam                         fidParam;
  905.     CSParam                         csParam;
  906.     ForeignPrivParam                 foreignPrivParam;
  907. };
  908. typedef union HParamBlockRec HParamBlockRec;
  909.  
  910. typedef HParamBlockRec *HParmBlkPtr;
  911. struct CMovePBRec {
  912.     QElemPtr                         qLink;
  913.     short                             qType;
  914.     short                             ioTrap;
  915.     Ptr                             ioCmdAddr;
  916.     IOCompletionUPP                 ioCompletion;
  917.     OSErr                             ioResult;
  918.     StringPtr                         ioNamePtr;
  919.     short                             ioVRefNum;
  920.     long                             filler1;
  921.     StringPtr                         ioNewName;
  922.     long                             filler2;
  923.     long                             ioNewDirID;
  924.     long                             filler3[2];
  925.     long                             ioDirID;
  926. };
  927. typedef struct CMovePBRec CMovePBRec;
  928.  
  929. typedef CMovePBRec *CMovePBPtr;
  930. struct WDPBRec {
  931.     QElemPtr                         qLink;
  932.     short                             qType;
  933.     short                             ioTrap;
  934.     Ptr                             ioCmdAddr;
  935.     IOCompletionUPP                 ioCompletion;
  936.     OSErr                             ioResult;
  937.     StringPtr                         ioNamePtr;
  938.     short                             ioVRefNum;
  939.     short                             filler1;
  940.     short                             ioWDIndex;
  941.     long                             ioWDProcID;
  942.     short                             ioWDVRefNum;
  943.     short                             filler2[7];
  944.     long                             ioWDDirID;
  945. };
  946. typedef struct WDPBRec WDPBRec;
  947.  
  948. typedef WDPBRec *WDPBPtr;
  949. struct FCBPBRec {
  950.     QElemPtr                         qLink;
  951.     short                             qType;
  952.     short                             ioTrap;
  953.     Ptr                             ioCmdAddr;
  954.     IOCompletionUPP                 ioCompletion;
  955.     OSErr                             ioResult;
  956.     StringPtr                         ioNamePtr;
  957.     short                             ioVRefNum;
  958.     short                             ioRefNum;
  959.     short                             filler;
  960.     short                             ioFCBIndx;
  961.     short                             filler1;
  962.     long                             ioFCBFlNm;
  963.     short                             ioFCBFlags;
  964.     unsigned short                     ioFCBStBlk;
  965.     long                             ioFCBEOF;
  966.     long                             ioFCBPLen;
  967.     long                             ioFCBCrPs;
  968.     short                             ioFCBVRefNum;
  969.     long                             ioFCBClpSiz;
  970.     long                             ioFCBParID;
  971. };
  972. typedef struct FCBPBRec FCBPBRec;
  973.  
  974. typedef FCBPBRec *FCBPBPtr;
  975. struct VCB {
  976.     QElemPtr                         qLink;
  977.     short                             qType;
  978.     short                             vcbFlags;
  979.     unsigned short                     vcbSigWord;
  980.     unsigned long                     vcbCrDate;
  981.     unsigned long                     vcbLsMod;
  982.     short                             vcbAtrb;
  983.     unsigned short                     vcbNmFls;
  984.     short                             vcbVBMSt;
  985.     short                             vcbAllocPtr;
  986.     unsigned short                     vcbNmAlBlks;
  987.     long                             vcbAlBlkSiz;
  988.     long                             vcbClpSiz;
  989.     short                             vcbAlBlSt;
  990.     long                             vcbNxtCNID;
  991.     unsigned short                     vcbFreeBks;
  992.     Str27                             vcbVN;
  993.     short                             vcbDrvNum;
  994.     short                             vcbDRefNum;
  995.     short                             vcbFSID;
  996.     short                             vcbVRefNum;
  997.     Ptr                             vcbMAdr;
  998.     Ptr                             vcbBufAdr;
  999.     short                             vcbMLen;
  1000.     short                             vcbDirIndex;
  1001.     short                             vcbDirBlk;
  1002.     unsigned long                     vcbVolBkUp;
  1003.     unsigned short                     vcbVSeqNum;
  1004.     long                             vcbWrCnt;
  1005.     long                             vcbXTClpSiz;
  1006.     long                             vcbCTClpSiz;
  1007.     unsigned short                     vcbNmRtDirs;
  1008.     long                             vcbFilCnt;
  1009.     long                             vcbDirCnt;
  1010.     long                             vcbFndrInfo[8];
  1011.     unsigned short                     vcbVCSize;
  1012.     unsigned short                     vcbVBMCSiz;
  1013.     unsigned short                     vcbCtlCSiz;
  1014.     unsigned short                     vcbXTAlBlks;
  1015.     unsigned short                     vcbCTAlBlks;
  1016.     short                             vcbXTRef;
  1017.     short                             vcbCTRef;
  1018.     Ptr                             vcbCtlBuf;
  1019.     long                             vcbDirIDM;
  1020.     short                             vcbOffsM;
  1021. };
  1022. typedef struct VCB VCB;
  1023.  
  1024. #if !OLDROUTINELOCATIONS
  1025. typedef VCB *VCBPtr;
  1026. #endif
  1027. struct DrvQEl {
  1028.     QElemPtr                         qLink;
  1029.     short                             qType;
  1030.     short                             dQDrive;
  1031.     short                             dQRefNum;
  1032.     short                             dQFSID;
  1033.     unsigned short                     dQDrvSz;
  1034.     unsigned short                     dQDrvSz2;
  1035. };
  1036. typedef struct DrvQEl DrvQEl;
  1037.  
  1038. typedef DrvQEl *DrvQElPtr;
  1039.  
  1040. enum {
  1041.     uppIOCompletionProcInfo = kRegisterBased
  1042.          | REGISTER_ROUTINE_PARAMETER(1, kRegisterA0, SIZE_CODE(sizeof(ParmBlkPtr)))
  1043. };
  1044.  
  1045. #if GENERATINGCFM
  1046. #define NewIOCompletionProc(userRoutine)        \
  1047.         (IOCompletionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIOCompletionProcInfo, GetCurrentArchitecture())
  1048. #else
  1049. #define NewIOCompletionProc(userRoutine)        \
  1050.         ((IOCompletionUPP) (userRoutine))
  1051. #endif
  1052.  
  1053. #if GENERATINGCFM
  1054. #define CallIOCompletionProc(userRoutine, paramBlock)        \
  1055.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppIOCompletionProcInfo, (paramBlock))
  1056. #else
  1057. /* (*IOCompletionUPP) cannot be called from a high-level language without the Mixed Mode Manager */
  1058. #endif
  1059. #if OLDROUTINELOCATIONS
  1060.  
  1061. #if GENERATING68K && !GENERATINGCFM
  1062. #pragma parameter __D0 PBOpenSync(__A0)
  1063. #endif
  1064. extern pascal OSErr PBOpenSync(ParmBlkPtr paramBlock)
  1065.  ONEWORDINLINE(0xA000);
  1066.  
  1067.  
  1068. #if GENERATING68K && !GENERATINGCFM
  1069. #pragma parameter __D0 PBOpenAsync(__A0)
  1070. #endif
  1071. extern pascal OSErr PBOpenAsync(ParmBlkPtr paramBlock)
  1072.  ONEWORDINLINE(0xA400);
  1073.  
  1074.  
  1075. #if GENERATING68K && !GENERATINGCFM
  1076. #pragma parameter __D0 PBOpenImmed(__A0)
  1077. #endif
  1078. extern pascal OSErr PBOpenImmed(ParmBlkPtr paramBlock)
  1079.  ONEWORDINLINE(0xA200);
  1080.  
  1081.  
  1082. #if GENERATING68K && !GENERATINGCFM
  1083. #pragma parameter __D0 PBCloseSync(__A0)
  1084. #endif
  1085. extern pascal OSErr PBCloseSync(ParmBlkPtr paramBlock)
  1086.  ONEWORDINLINE(0xA001);
  1087.  
  1088.  
  1089. #if GENERATING68K && !GENERATINGCFM
  1090. #pragma parameter __D0 PBCloseAsync(__A0)
  1091. #endif
  1092. extern pascal OSErr PBCloseAsync(ParmBlkPtr paramBlock)
  1093.  ONEWORDINLINE(0xA401);
  1094.  
  1095.  
  1096. #if GENERATING68K && !GENERATINGCFM
  1097. #pragma parameter __D0 PBCloseImmed(__A0)
  1098. #endif
  1099. extern pascal OSErr PBCloseImmed(ParmBlkPtr paramBlock)
  1100.  ONEWORDINLINE(0xA201);
  1101.  
  1102.  
  1103. #if GENERATING68K && !GENERATINGCFM
  1104. #pragma parameter __D0 PBReadSync(__A0)
  1105. #endif
  1106. extern pascal OSErr PBReadSync(ParmBlkPtr paramBlock)
  1107.  ONEWORDINLINE(0xA002);
  1108.  
  1109.  
  1110. #if GENERATING68K && !GENERATINGCFM
  1111. #pragma parameter __D0 PBReadAsync(__A0)
  1112. #endif
  1113. extern pascal OSErr PBReadAsync(ParmBlkPtr paramBlock)
  1114.  ONEWORDINLINE(0xA402);
  1115.  
  1116.  
  1117. #if GENERATING68K && !GENERATINGCFM
  1118. #pragma parameter __D0 PBReadImmed(__A0)
  1119. #endif
  1120. extern pascal OSErr PBReadImmed(ParmBlkPtr paramBlock)
  1121.  ONEWORDINLINE(0xA202);
  1122.  
  1123.  
  1124. #if GENERATING68K && !GENERATINGCFM
  1125. #pragma parameter __D0 PBWriteSync(__A0)
  1126. #endif
  1127. extern pascal OSErr PBWriteSync(ParmBlkPtr paramBlock)
  1128.  ONEWORDINLINE(0xA003);
  1129.  
  1130.  
  1131. #if GENERATING68K && !GENERATINGCFM
  1132. #pragma parameter __D0 PBWriteAsync(__A0)
  1133. #endif
  1134. extern pascal OSErr PBWriteAsync(ParmBlkPtr paramBlock)
  1135.  ONEWORDINLINE(0xA403);
  1136.  
  1137.  
  1138. #if GENERATING68K && !GENERATINGCFM
  1139. #pragma parameter __D0 PBWriteImmed(__A0)
  1140. #endif
  1141. extern pascal OSErr PBWriteImmed(ParmBlkPtr paramBlock)
  1142.  ONEWORDINLINE(0xA203);
  1143.  
  1144. #endif
  1145.  
  1146. #if GENERATING68K && !GENERATINGCFM
  1147. #pragma parameter __D0 PBGetVInfoSync(__A0)
  1148. #endif
  1149. extern pascal OSErr PBGetVInfoSync(ParmBlkPtr paramBlock)
  1150.  ONEWORDINLINE(0xA007);
  1151.  
  1152.  
  1153. #if GENERATING68K && !GENERATINGCFM
  1154. #pragma parameter __D0 PBGetVInfoAsync(__A0)
  1155. #endif
  1156. extern pascal OSErr PBGetVInfoAsync(ParmBlkPtr paramBlock)
  1157.  ONEWORDINLINE(0xA407);
  1158.  
  1159.  
  1160. #if GENERATING68K && !GENERATINGCFM
  1161. #pragma parameter __D0 PBXGetVolInfoSync(__A0)
  1162. #endif
  1163. extern pascal OSErr PBXGetVolInfoSync(XVolumeParamPtr paramBlock)
  1164.  TWOWORDINLINE(0x7012, 0xA060);
  1165.  
  1166.  
  1167. #if GENERATING68K && !GENERATINGCFM
  1168. #pragma parameter __D0 PBXGetVolInfoAsync(__A0)
  1169. #endif
  1170. extern pascal OSErr PBXGetVolInfoAsync(XVolumeParamPtr paramBlock)
  1171.  TWOWORDINLINE(0x7012, 0xA460);
  1172.  
  1173.  
  1174. #if GENERATING68K && !GENERATINGCFM
  1175. #pragma parameter __D0 PBGetVolSync(__A0)
  1176. #endif
  1177. extern pascal OSErr PBGetVolSync(ParmBlkPtr paramBlock)
  1178.  ONEWORDINLINE(0xA014);
  1179.  
  1180.  
  1181. #if GENERATING68K && !GENERATINGCFM
  1182. #pragma parameter __D0 PBGetVolAsync(__A0)
  1183. #endif
  1184. extern pascal OSErr PBGetVolAsync(ParmBlkPtr paramBlock)
  1185.  ONEWORDINLINE(0xA414);
  1186.  
  1187.  
  1188. #if GENERATING68K && !GENERATINGCFM
  1189. #pragma parameter __D0 PBSetVolSync(__A0)
  1190. #endif
  1191. extern pascal OSErr PBSetVolSync(ParmBlkPtr paramBlock)
  1192.  ONEWORDINLINE(0xA015);
  1193.  
  1194.  
  1195. #if GENERATING68K && !GENERATINGCFM
  1196. #pragma parameter __D0 PBSetVolAsync(__A0)
  1197. #endif
  1198. extern pascal OSErr PBSetVolAsync(ParmBlkPtr paramBlock)
  1199.  ONEWORDINLINE(0xA415);
  1200.  
  1201.  
  1202. #if GENERATING68K && !GENERATINGCFM
  1203. #pragma parameter __D0 PBFlushVolSync(__A0)
  1204. #endif
  1205. extern pascal OSErr PBFlushVolSync(ParmBlkPtr paramBlock)
  1206.  ONEWORDINLINE(0xA013);
  1207.  
  1208.  
  1209. #if GENERATING68K && !GENERATINGCFM
  1210. #pragma parameter __D0 PBFlushVolAsync(__A0)
  1211. #endif
  1212. extern pascal OSErr PBFlushVolAsync(ParmBlkPtr paramBlock)
  1213.  ONEWORDINLINE(0xA413);
  1214.  
  1215.  
  1216. #if GENERATING68K && !GENERATINGCFM
  1217. #pragma parameter __D0 PBCreateSync(__A0)
  1218. #endif
  1219. extern pascal OSErr PBCreateSync(ParmBlkPtr paramBlock)
  1220.  ONEWORDINLINE(0xA008);
  1221.  
  1222.  
  1223. #if GENERATING68K && !GENERATINGCFM
  1224. #pragma parameter __D0 PBCreateAsync(__A0)
  1225. #endif
  1226. extern pascal OSErr PBCreateAsync(ParmBlkPtr paramBlock)
  1227.  ONEWORDINLINE(0xA408);
  1228.  
  1229.  
  1230. #if GENERATING68K && !GENERATINGCFM
  1231. #pragma parameter __D0 PBDeleteSync(__A0)
  1232. #endif
  1233. extern pascal OSErr PBDeleteSync(ParmBlkPtr paramBlock)
  1234.  ONEWORDINLINE(0xA009);
  1235.  
  1236.  
  1237. #if GENERATING68K && !GENERATINGCFM
  1238. #pragma parameter __D0 PBDeleteAsync(__A0)
  1239. #endif
  1240. extern pascal OSErr PBDeleteAsync(ParmBlkPtr paramBlock)
  1241.  ONEWORDINLINE(0xA409);
  1242.  
  1243.  
  1244. #if GENERATING68K && !GENERATINGCFM
  1245. #pragma parameter __D0 PBOpenDFSync(__A0)
  1246. #endif
  1247. extern pascal OSErr PBOpenDFSync(ParmBlkPtr paramBlock)
  1248.  TWOWORDINLINE(0x701A, 0xA060);
  1249.  
  1250.  
  1251. #if GENERATING68K && !GENERATINGCFM
  1252. #pragma parameter __D0 PBOpenDFAsync(__A0)
  1253. #endif
  1254. extern pascal OSErr PBOpenDFAsync(ParmBlkPtr paramBlock)
  1255.  TWOWORDINLINE(0x701A, 0xA460);
  1256.  
  1257.  
  1258. #if GENERATING68K && !GENERATINGCFM
  1259. #pragma parameter __D0 PBOpenRFSync(__A0)
  1260. #endif
  1261. extern pascal OSErr PBOpenRFSync(ParmBlkPtr paramBlock)
  1262.  ONEWORDINLINE(0xA00A);
  1263.  
  1264.  
  1265. #if GENERATING68K && !GENERATINGCFM
  1266. #pragma parameter __D0 PBOpenRFAsync(__A0)
  1267. #endif
  1268. extern pascal OSErr PBOpenRFAsync(ParmBlkPtr paramBlock)
  1269.  ONEWORDINLINE(0xA40A);
  1270.  
  1271.  
  1272. #if GENERATING68K && !GENERATINGCFM
  1273. #pragma parameter __D0 PBRenameSync(__A0)
  1274. #endif
  1275. extern pascal OSErr PBRenameSync(ParmBlkPtr paramBlock)
  1276.  ONEWORDINLINE(0xA00B);
  1277.  
  1278.  
  1279. #if GENERATING68K && !GENERATINGCFM
  1280. #pragma parameter __D0 PBRenameAsync(__A0)
  1281. #endif
  1282. extern pascal OSErr PBRenameAsync(ParmBlkPtr paramBlock)
  1283.  ONEWORDINLINE(0xA40B);
  1284.  
  1285.  
  1286. #if GENERATING68K && !GENERATINGCFM
  1287. #pragma parameter __D0 PBGetFInfoSync(__A0)
  1288. #endif
  1289. extern pascal OSErr PBGetFInfoSync(ParmBlkPtr paramBlock)
  1290.  ONEWORDINLINE(0xA00C);
  1291.  
  1292.  
  1293. #if GENERATING68K && !GENERATINGCFM
  1294. #pragma parameter __D0 PBGetFInfoAsync(__A0)
  1295. #endif
  1296. extern pascal OSErr PBGetFInfoAsync(ParmBlkPtr paramBlock)
  1297.  ONEWORDINLINE(0xA40C);
  1298.  
  1299.  
  1300. #if GENERATING68K && !GENERATINGCFM
  1301. #pragma parameter __D0 PBSetFInfoSync(__A0)
  1302. #endif
  1303. extern pascal OSErr PBSetFInfoSync(ParmBlkPtr paramBlock)
  1304.  ONEWORDINLINE(0xA00D);
  1305.  
  1306.  
  1307. #if GENERATING68K && !GENERATINGCFM
  1308. #pragma parameter __D0 PBSetFInfoAsync(__A0)
  1309. #endif
  1310. extern pascal OSErr PBSetFInfoAsync(ParmBlkPtr paramBlock)
  1311.  ONEWORDINLINE(0xA40D);
  1312.  
  1313.  
  1314. #if GENERATING68K && !GENERATINGCFM
  1315. #pragma parameter __D0 PBSetFLockSync(__A0)
  1316. #endif
  1317. extern pascal OSErr PBSetFLockSync(ParmBlkPtr paramBlock)
  1318.  ONEWORDINLINE(0xA041);
  1319.  
  1320.  
  1321. #if GENERATING68K && !GENERATINGCFM
  1322. #pragma parameter __D0 PBSetFLockAsync(__A0)
  1323. #endif
  1324. extern pascal OSErr PBSetFLockAsync(ParmBlkPtr paramBlock)
  1325.  ONEWORDINLINE(0xA441);
  1326.  
  1327.  
  1328. #if GENERATING68K && !GENERATINGCFM
  1329. #pragma parameter __D0 PBRstFLockSync(__A0)
  1330. #endif
  1331. extern pascal OSErr PBRstFLockSync(ParmBlkPtr paramBlock)
  1332.  ONEWORDINLINE(0xA042);
  1333.  
  1334.  
  1335. #if GENERATING68K && !GENERATINGCFM
  1336. #pragma parameter __D0 PBRstFLockAsync(__A0)
  1337. #endif
  1338. extern pascal OSErr PBRstFLockAsync(ParmBlkPtr paramBlock)
  1339.  ONEWORDINLINE(0xA442);
  1340.  
  1341.  
  1342. #if GENERATING68K && !GENERATINGCFM
  1343. #pragma parameter __D0 PBSetFVersSync(__A0)
  1344. #endif
  1345. extern pascal OSErr PBSetFVersSync(ParmBlkPtr paramBlock)
  1346.  ONEWORDINLINE(0xA043);
  1347.  
  1348.  
  1349. #if GENERATING68K && !GENERATINGCFM
  1350. #pragma parameter __D0 PBSetFVersAsync(__A0)
  1351. #endif
  1352. extern pascal OSErr PBSetFVersAsync(ParmBlkPtr paramBlock)
  1353.  ONEWORDINLINE(0xA443);
  1354.  
  1355.  
  1356. #if GENERATING68K && !GENERATINGCFM
  1357. #pragma parameter __D0 PBAllocateSync(__A0)
  1358. #endif
  1359. extern pascal OSErr PBAllocateSync(ParmBlkPtr paramBlock)
  1360.  ONEWORDINLINE(0xA010);
  1361.  
  1362.  
  1363. #if GENERATING68K && !GENERATINGCFM
  1364. #pragma parameter __D0 PBAllocateAsync(__A0)
  1365. #endif
  1366. extern pascal OSErr PBAllocateAsync(ParmBlkPtr paramBlock)
  1367.  ONEWORDINLINE(0xA410);
  1368.  
  1369.  
  1370. #if GENERATING68K && !GENERATINGCFM
  1371. #pragma parameter __D0 PBGetEOFSync(__A0)
  1372. #endif
  1373. extern pascal OSErr PBGetEOFSync(ParmBlkPtr paramBlock)
  1374.  ONEWORDINLINE(0xA011);
  1375.  
  1376.  
  1377. #if GENERATING68K && !GENERATINGCFM
  1378. #pragma parameter __D0 PBGetEOFAsync(__A0)
  1379. #endif
  1380. extern pascal OSErr PBGetEOFAsync(ParmBlkPtr paramBlock)
  1381.  ONEWORDINLINE(0xA411);
  1382.  
  1383.  
  1384. #if GENERATING68K && !GENERATINGCFM
  1385. #pragma parameter __D0 PBSetEOFSync(__A0)
  1386. #endif
  1387. extern pascal OSErr PBSetEOFSync(ParmBlkPtr paramBlock)
  1388.  ONEWORDINLINE(0xA012);
  1389.  
  1390.  
  1391. #if GENERATING68K && !GENERATINGCFM
  1392. #pragma parameter __D0 PBSetEOFAsync(__A0)
  1393. #endif
  1394. extern pascal OSErr PBSetEOFAsync(ParmBlkPtr paramBlock)
  1395.  ONEWORDINLINE(0xA412);
  1396.  
  1397.  
  1398. #if GENERATING68K && !GENERATINGCFM
  1399. #pragma parameter __D0 PBGetFPosSync(__A0)
  1400. #endif
  1401. extern pascal OSErr PBGetFPosSync(ParmBlkPtr paramBlock)
  1402.  ONEWORDINLINE(0xA018);
  1403.  
  1404.  
  1405. #if GENERATING68K && !GENERATINGCFM
  1406. #pragma parameter __D0 PBGetFPosAsync(__A0)
  1407. #endif
  1408. extern pascal OSErr PBGetFPosAsync(ParmBlkPtr paramBlock)
  1409.  ONEWORDINLINE(0xA418);
  1410.  
  1411.  
  1412. #if GENERATING68K && !GENERATINGCFM
  1413. #pragma parameter __D0 PBSetFPosSync(__A0)
  1414. #endif
  1415. extern pascal OSErr PBSetFPosSync(ParmBlkPtr paramBlock)
  1416.  ONEWORDINLINE(0xA044);
  1417.  
  1418.  
  1419. #if GENERATING68K && !GENERATINGCFM
  1420. #pragma parameter __D0 PBSetFPosAsync(__A0)
  1421. #endif
  1422. extern pascal OSErr PBSetFPosAsync(ParmBlkPtr paramBlock)
  1423.  ONEWORDINLINE(0xA444);
  1424.  
  1425.  
  1426. #if GENERATING68K && !GENERATINGCFM
  1427. #pragma parameter __D0 PBFlushFileSync(__A0)
  1428. #endif
  1429. extern pascal OSErr PBFlushFileSync(ParmBlkPtr paramBlock)
  1430.  ONEWORDINLINE(0xA045);
  1431.  
  1432.  
  1433. #if GENERATING68K && !GENERATINGCFM
  1434. #pragma parameter __D0 PBFlushFileAsync(__A0)
  1435. #endif
  1436. extern pascal OSErr PBFlushFileAsync(ParmBlkPtr paramBlock)
  1437.  ONEWORDINLINE(0xA445);
  1438.  
  1439.  
  1440. #if GENERATING68K && !GENERATINGCFM
  1441. #pragma parameter __D0 PBMountVol(__A0)
  1442. #endif
  1443. extern pascal OSErr PBMountVol(ParmBlkPtr paramBlock)
  1444.  ONEWORDINLINE(0xA00F);
  1445.  
  1446.  
  1447. #if GENERATING68K && !GENERATINGCFM
  1448. #pragma parameter __D0 PBUnmountVol(__A0)
  1449. #endif
  1450. extern pascal OSErr PBUnmountVol(ParmBlkPtr paramBlock)
  1451.  ONEWORDINLINE(0xA00E);
  1452.  
  1453. #if FOR_SYSTEM7_ONLY
  1454.  
  1455. #if GENERATING68K && !GENERATINGCFM
  1456. #pragma parameter __D0 PBUnmountVolImmed(__A0)
  1457. #endif
  1458. extern pascal OSErr PBUnmountVolImmed(ParmBlkPtr paramBlock)
  1459.  ONEWORDINLINE(0xA20E);
  1460.  
  1461. #endif
  1462.  
  1463. #if GENERATING68K && !GENERATINGCFM
  1464. #pragma parameter __D0 PBEject(__A0)
  1465. #endif
  1466. extern pascal OSErr PBEject(ParmBlkPtr paramBlock)
  1467.  ONEWORDINLINE(0xA017);
  1468.  
  1469.  
  1470. #if GENERATING68K && !GENERATINGCFM
  1471. #pragma parameter __D0 PBOffLine(__A0)
  1472. #endif
  1473. extern pascal OSErr PBOffLine(ParmBlkPtr paramBlock)
  1474.  ONEWORDINLINE(0xA035);
  1475.  
  1476.  
  1477. #if GENERATING68K && !GENERATINGCFM
  1478. #pragma parameter __D0 PBCatSearchSync(__A0)
  1479. #endif
  1480. extern pascal OSErr PBCatSearchSync(CSParamPtr paramBlock)
  1481.  TWOWORDINLINE(0x7018, 0xA260);
  1482.  
  1483.  
  1484. #if GENERATING68K && !GENERATINGCFM
  1485. #pragma parameter __D0 PBCatSearchAsync(__A0)
  1486. #endif
  1487. extern pascal OSErr PBCatSearchAsync(CSParamPtr paramBlock)
  1488.  TWOWORDINLINE(0x7018, 0xA660);
  1489.  
  1490. extern pascal OSErr SetVol(ConstStr63Param volName, short vRefNum);
  1491.  
  1492. extern pascal OSErr UnmountVol(ConstStr63Param volName, short vRefNum);
  1493.  
  1494. extern pascal OSErr Eject(ConstStr63Param volName, short vRefNum);
  1495.  
  1496. extern pascal OSErr FlushVol(ConstStr63Param volName, short vRefNum);
  1497.  
  1498. extern pascal OSErr HSetVol(ConstStr63Param volName, short vRefNum, long dirID);
  1499.  
  1500. #if OLDROUTINELOCATIONS
  1501. extern pascal void AddDrive(short drvrRefNum, short drvNum, DrvQElPtr qEl);
  1502.  
  1503. #endif
  1504. extern pascal OSErr FSOpen(ConstStr255Param fileName, short vRefNum, short *refNum);
  1505.  
  1506. extern pascal OSErr OpenDF(ConstStr255Param fileName, short vRefNum, short *refNum);
  1507.  
  1508. extern pascal OSErr FSClose(short refNum);
  1509.  
  1510. extern pascal OSErr FSRead(short refNum, long *count, void *buffPtr);
  1511.  
  1512. extern pascal OSErr FSWrite(short refNum, long *count, const void *buffPtr);
  1513.  
  1514. extern pascal OSErr GetVInfo(short drvNum, StringPtr volName, short *vRefNum, long *freeBytes);
  1515.  
  1516. extern pascal OSErr GetFInfo(ConstStr255Param fileName, short vRefNum, FInfo *fndrInfo);
  1517.  
  1518. extern pascal OSErr GetVol(StringPtr volName, short *vRefNum);
  1519.  
  1520. extern pascal OSErr Create(ConstStr255Param fileName, short vRefNum, OSType creator, OSType fileType);
  1521.  
  1522. extern pascal OSErr FSDelete(ConstStr255Param fileName, short vRefNum);
  1523.  
  1524. extern pascal OSErr OpenRF(ConstStr255Param fileName, short vRefNum, short *refNum);
  1525.  
  1526. extern pascal OSErr Rename(ConstStr255Param oldName, short vRefNum, ConstStr255Param newName);
  1527.  
  1528. extern pascal OSErr SetFInfo(ConstStr255Param fileName, short vRefNum, const FInfo *fndrInfo);
  1529.  
  1530. extern pascal OSErr SetFLock(ConstStr255Param fileName, short vRefNum);
  1531.  
  1532. extern pascal OSErr RstFLock(ConstStr255Param fileName, short vRefNum);
  1533.  
  1534. extern pascal OSErr Allocate(short refNum, long *count);
  1535.  
  1536. extern pascal OSErr GetEOF(short refNum, long *logEOF);
  1537.  
  1538. extern pascal OSErr SetEOF(short refNum, long logEOF);
  1539.  
  1540. extern pascal OSErr GetFPos(short refNum, long *filePos);
  1541.  
  1542. extern pascal OSErr SetFPos(short refNum, short posMode, long posOff);
  1543.  
  1544. extern pascal OSErr GetVRefNum(short fileRefNum, short *vRefNum);
  1545.  
  1546. #if CGLUESUPPORTED
  1547. extern OSErr fsopen(const char *fileName, short vRefNum, short *refNum);
  1548.  
  1549. extern OSErr getvinfo(short drvNum, char *volName, short *vRefNum, long *freeBytes);
  1550.  
  1551. extern OSErr getfinfo(const char *fileName, short vRefNum, FInfo *fndrInfo);
  1552.  
  1553. extern OSErr getvol(char *volName, short *vRefNum);
  1554.  
  1555. extern OSErr setvol(const char *volName, short vRefNum);
  1556.  
  1557. extern OSErr unmountvol(const char *volName, short vRefNum);
  1558.  
  1559. extern OSErr eject(const char *volName, short vRefNum);
  1560.  
  1561. extern OSErr flushvol(const char *volName, short vRefNum);
  1562.  
  1563. extern OSErr create(const char *fileName, short vRefNum, OSType creator, OSType fileType);
  1564.  
  1565. extern OSErr fsdelete(const char *fileName, short vRefNum);
  1566.  
  1567. extern OSErr openrf(const char *fileName, short vRefNum, short *refNum);
  1568.  
  1569. extern OSErr fsrename(const char *oldName, short vRefNum, const char *newName);
  1570.  
  1571. extern OSErr setfinfo(const char *fileName, short vRefNum, const FInfo *fndrInfo);
  1572.  
  1573. extern OSErr setflock(const char *fileName, short vRefNum);
  1574.  
  1575. extern OSErr rstflock(const char *fileName, short vRefNum);
  1576.  
  1577. #endif
  1578.  
  1579. #if GENERATING68K && !GENERATINGCFM
  1580. #pragma parameter __D0 PBOpenWDSync(__A0)
  1581. #endif
  1582. extern pascal OSErr PBOpenWDSync(WDPBPtr paramBlock)
  1583.  TWOWORDINLINE(0x7001, 0xA260);
  1584.  
  1585.  
  1586. #if GENERATING68K && !GENERATINGCFM
  1587. #pragma parameter __D0 PBOpenWDAsync(__A0)
  1588. #endif
  1589. extern pascal OSErr PBOpenWDAsync(WDPBPtr paramBlock)
  1590.  TWOWORDINLINE(0x7001, 0xA660);
  1591.  
  1592.  
  1593. #if GENERATING68K && !GENERATINGCFM
  1594. #pragma parameter __D0 PBCloseWDSync(__A0)
  1595. #endif
  1596. extern pascal OSErr PBCloseWDSync(WDPBPtr paramBlock)
  1597.  TWOWORDINLINE(0x7002, 0xA260);
  1598.  
  1599.  
  1600. #if GENERATING68K && !GENERATINGCFM
  1601. #pragma parameter __D0 PBCloseWDAsync(__A0)
  1602. #endif
  1603. extern pascal OSErr PBCloseWDAsync(WDPBPtr paramBlock)
  1604.  TWOWORDINLINE(0x7002, 0xA660);
  1605.  
  1606.  
  1607. #if GENERATING68K && !GENERATINGCFM
  1608. #pragma parameter __D0 PBHSetVolSync(__A0)
  1609. #endif
  1610. extern pascal OSErr PBHSetVolSync(WDPBPtr paramBlock)
  1611.  ONEWORDINLINE(0xA215);
  1612.  
  1613.  
  1614. #if GENERATING68K && !GENERATINGCFM
  1615. #pragma parameter __D0 PBHSetVolAsync(__A0)
  1616. #endif
  1617. extern pascal OSErr PBHSetVolAsync(WDPBPtr paramBlock)
  1618.  ONEWORDINLINE(0xA615);
  1619.  
  1620.  
  1621. #if GENERATING68K && !GENERATINGCFM
  1622. #pragma parameter __D0 PBHGetVolSync(__A0)
  1623. #endif
  1624. extern pascal OSErr PBHGetVolSync(WDPBPtr paramBlock)
  1625.  ONEWORDINLINE(0xA214);
  1626.  
  1627.  
  1628. #if GENERATING68K && !GENERATINGCFM
  1629. #pragma parameter __D0 PBHGetVolAsync(__A0)
  1630. #endif
  1631. extern pascal OSErr PBHGetVolAsync(WDPBPtr paramBlock)
  1632.  ONEWORDINLINE(0xA614);
  1633.  
  1634.  
  1635. #if GENERATING68K && !GENERATINGCFM
  1636. #pragma parameter __D0 PBCatMoveSync(__A0)
  1637. #endif
  1638. extern pascal OSErr PBCatMoveSync(CMovePBPtr paramBlock)
  1639.  TWOWORDINLINE(0x7005, 0xA260);
  1640.  
  1641.  
  1642. #if GENERATING68K && !GENERATINGCFM
  1643. #pragma parameter __D0 PBCatMoveAsync(__A0)
  1644. #endif
  1645. extern pascal OSErr PBCatMoveAsync(CMovePBPtr paramBlock)
  1646.  TWOWORDINLINE(0x7005, 0xA660);
  1647.  
  1648.  
  1649. #if GENERATING68K && !GENERATINGCFM
  1650. #pragma parameter __D0 PBDirCreateSync(__A0)
  1651. #endif
  1652. extern pascal OSErr PBDirCreateSync(HParmBlkPtr paramBlock)
  1653.  TWOWORDINLINE(0x7006, 0xA260);
  1654.  
  1655.  
  1656. #if GENERATING68K && !GENERATINGCFM
  1657. #pragma parameter __D0 PBDirCreateAsync(__A0)
  1658. #endif
  1659. extern pascal OSErr PBDirCreateAsync(HParmBlkPtr paramBlock)
  1660.  TWOWORDINLINE(0x7006, 0xA660);
  1661.  
  1662.  
  1663. #if GENERATING68K && !GENERATINGCFM
  1664. #pragma parameter __D0 PBGetWDInfoSync(__A0)
  1665. #endif
  1666. extern pascal OSErr PBGetWDInfoSync(WDPBPtr paramBlock)
  1667.  TWOWORDINLINE(0x7007, 0xA260);
  1668.  
  1669.  
  1670. #if GENERATING68K && !GENERATINGCFM
  1671. #pragma parameter __D0 PBGetWDInfoAsync(__A0)
  1672. #endif
  1673. extern pascal OSErr PBGetWDInfoAsync(WDPBPtr paramBlock)
  1674.  TWOWORDINLINE(0x7007, 0xA660);
  1675.  
  1676.  
  1677. #if GENERATING68K && !GENERATINGCFM
  1678. #pragma parameter __D0 PBGetFCBInfoSync(__A0)
  1679. #endif
  1680. extern pascal OSErr PBGetFCBInfoSync(FCBPBPtr paramBlock)
  1681.  TWOWORDINLINE(0x7008, 0xA260);
  1682.  
  1683.  
  1684. #if GENERATING68K && !GENERATINGCFM
  1685. #pragma parameter __D0 PBGetFCBInfoAsync(__A0)
  1686. #endif
  1687. extern pascal OSErr PBGetFCBInfoAsync(FCBPBPtr paramBlock)
  1688.  TWOWORDINLINE(0x7008, 0xA660);
  1689.  
  1690.  
  1691. #if GENERATING68K && !GENERATINGCFM
  1692. #pragma parameter __D0 PBGetCatInfoSync(__A0)
  1693. #endif
  1694. extern pascal OSErr PBGetCatInfoSync(CInfoPBPtr paramBlock)
  1695.  TWOWORDINLINE(0x7009, 0xA260);
  1696.  
  1697.  
  1698. #if GENERATING68K && !GENERATINGCFM
  1699. #pragma parameter __D0 PBGetCatInfoAsync(__A0)
  1700. #endif
  1701. extern pascal OSErr PBGetCatInfoAsync(CInfoPBPtr paramBlock)
  1702.  TWOWORDINLINE(0x7009, 0xA660);
  1703.  
  1704.  
  1705. #if GENERATING68K && !GENERATINGCFM
  1706. #pragma parameter __D0 PBSetCatInfoSync(__A0)
  1707. #endif
  1708. extern pascal OSErr PBSetCatInfoSync(CInfoPBPtr paramBlock)
  1709.  TWOWORDINLINE(0x700A, 0xA260);
  1710.  
  1711.  
  1712. #if GENERATING68K && !GENERATINGCFM
  1713. #pragma parameter __D0 PBSetCatInfoAsync(__A0)
  1714. #endif
  1715. extern pascal OSErr PBSetCatInfoAsync(CInfoPBPtr paramBlock)
  1716.  TWOWORDINLINE(0x700A, 0xA660);
  1717.  
  1718.  
  1719. #if GENERATING68K && !GENERATINGCFM
  1720. #pragma parameter __D0 PBAllocContigSync(__A0)
  1721. #endif
  1722. extern pascal OSErr PBAllocContigSync(ParmBlkPtr paramBlock)
  1723.  ONEWORDINLINE(0xA210);
  1724.  
  1725.  
  1726. #if GENERATING68K && !GENERATINGCFM
  1727. #pragma parameter __D0 PBAllocContigAsync(__A0)
  1728. #endif
  1729. extern pascal OSErr PBAllocContigAsync(ParmBlkPtr paramBlock)
  1730.  ONEWORDINLINE(0xA610);
  1731.  
  1732.  
  1733. #if GENERATING68K && !GENERATINGCFM
  1734. #pragma parameter __D0 PBLockRangeSync(__A0)
  1735. #endif
  1736. extern pascal OSErr PBLockRangeSync(ParmBlkPtr paramBlock)
  1737.  TWOWORDINLINE(0x7010, 0xA260);
  1738.  
  1739.  
  1740. #if GENERATING68K && !GENERATINGCFM
  1741. #pragma parameter __D0 PBLockRangeAsync(__A0)
  1742. #endif
  1743. extern pascal OSErr PBLockRangeAsync(ParmBlkPtr paramBlock)
  1744.  TWOWORDINLINE(0x7010, 0xA660);
  1745.  
  1746.  
  1747. #if GENERATING68K && !GENERATINGCFM
  1748. #pragma parameter __D0 PBUnlockRangeSync(__A0)
  1749. #endif
  1750. extern pascal OSErr PBUnlockRangeSync(ParmBlkPtr paramBlock)
  1751.  TWOWORDINLINE(0x7011, 0xA260);
  1752.  
  1753.  
  1754. #if GENERATING68K && !GENERATINGCFM
  1755. #pragma parameter __D0 PBUnlockRangeAsync(__A0)
  1756. #endif
  1757. extern pascal OSErr PBUnlockRangeAsync(ParmBlkPtr paramBlock)
  1758.  TWOWORDINLINE(0x7011, 0xA660);
  1759.  
  1760.  
  1761. #if GENERATING68K && !GENERATINGCFM
  1762. #pragma parameter __D0 PBSetVInfoSync(__A0)
  1763. #endif
  1764. extern pascal OSErr PBSetVInfoSync(HParmBlkPtr paramBlock)
  1765.  TWOWORDINLINE(0x700B, 0xA260);
  1766.  
  1767.  
  1768. #if GENERATING68K && !GENERATINGCFM
  1769. #pragma parameter __D0 PBSetVInfoAsync(__A0)
  1770. #endif
  1771. extern pascal OSErr PBSetVInfoAsync(HParmBlkPtr paramBlock)
  1772.  TWOWORDINLINE(0x700B, 0xA660);
  1773.  
  1774.  
  1775. #if GENERATING68K && !GENERATINGCFM
  1776. #pragma parameter __D0 PBHGetVInfoSync(__A0)
  1777. #endif
  1778. extern pascal OSErr PBHGetVInfoSync(HParmBlkPtr paramBlock)
  1779.  ONEWORDINLINE(0xA207);
  1780.  
  1781.  
  1782. #if GENERATING68K && !GENERATINGCFM
  1783. #pragma parameter __D0 PBHGetVInfoAsync(__A0)
  1784. #endif
  1785. extern pascal OSErr PBHGetVInfoAsync(HParmBlkPtr paramBlock)
  1786.  ONEWORDINLINE(0xA607);
  1787.  
  1788.  
  1789. #if GENERATING68K && !GENERATINGCFM
  1790. #pragma parameter __D0 PBHOpenSync(__A0)
  1791. #endif
  1792. extern pascal OSErr PBHOpenSync(HParmBlkPtr paramBlock)
  1793.  ONEWORDINLINE(0xA200);
  1794.  
  1795.  
  1796. #if GENERATING68K && !GENERATINGCFM
  1797. #pragma parameter __D0 PBHOpenAsync(__A0)
  1798. #endif
  1799. extern pascal OSErr PBHOpenAsync(HParmBlkPtr paramBlock)
  1800.  ONEWORDINLINE(0xA600);
  1801.  
  1802.  
  1803. #if GENERATING68K && !GENERATINGCFM
  1804. #pragma parameter __D0 PBHOpenRFSync(__A0)
  1805. #endif
  1806. extern pascal OSErr PBHOpenRFSync(HParmBlkPtr paramBlock)
  1807.  ONEWORDINLINE(0xA20A);
  1808.  
  1809.  
  1810. #if GENERATING68K && !GENERATINGCFM
  1811. #pragma parameter __D0 PBHOpenRFAsync(__A0)
  1812. #endif
  1813. extern pascal OSErr PBHOpenRFAsync(HParmBlkPtr paramBlock)
  1814.  ONEWORDINLINE(0xA60A);
  1815.  
  1816.  
  1817. #if GENERATING68K && !GENERATINGCFM
  1818. #pragma parameter __D0 PBHOpenDFSync(__A0)
  1819. #endif
  1820. extern pascal OSErr PBHOpenDFSync(HParmBlkPtr paramBlock)
  1821.  TWOWORDINLINE(0x701A, 0xA260);
  1822.  
  1823.  
  1824. #if GENERATING68K && !GENERATINGCFM
  1825. #pragma parameter __D0 PBHOpenDFAsync(__A0)
  1826. #endif
  1827. extern pascal OSErr PBHOpenDFAsync(HParmBlkPtr paramBlock)
  1828.  TWOWORDINLINE(0x701A, 0xA660);
  1829.  
  1830.  
  1831. #if GENERATING68K && !GENERATINGCFM
  1832. #pragma parameter __D0 PBHCreateSync(__A0)
  1833. #endif
  1834. extern pascal OSErr PBHCreateSync(HParmBlkPtr paramBlock)
  1835.  ONEWORDINLINE(0xA208);
  1836.  
  1837.  
  1838. #if GENERATING68K && !GENERATINGCFM
  1839. #pragma parameter __D0 PBHCreateAsync(__A0)
  1840. #endif
  1841. extern pascal OSErr PBHCreateAsync(HParmBlkPtr paramBlock)
  1842.  ONEWORDINLINE(0xA608);
  1843.  
  1844.  
  1845. #if GENERATING68K && !GENERATINGCFM
  1846. #pragma parameter __D0 PBHDeleteSync(__A0)
  1847. #endif
  1848. extern pascal OSErr PBHDeleteSync(HParmBlkPtr paramBlock)
  1849.  ONEWORDINLINE(0xA209);
  1850.  
  1851.  
  1852. #if GENERATING68K && !GENERATINGCFM
  1853. #pragma parameter __D0 PBHDeleteAsync(__A0)
  1854. #endif
  1855. extern pascal OSErr PBHDeleteAsync(HParmBlkPtr paramBlock)
  1856.  ONEWORDINLINE(0xA609);
  1857.  
  1858.  
  1859. #if GENERATING68K && !GENERATINGCFM
  1860. #pragma parameter __D0 PBHRenameSync(__A0)
  1861. #endif
  1862. extern pascal OSErr PBHRenameSync(HParmBlkPtr paramBlock)
  1863.  ONEWORDINLINE(0xA20B);
  1864.  
  1865.  
  1866. #if GENERATING68K && !GENERATINGCFM
  1867. #pragma parameter __D0 PBHRenameAsync(__A0)
  1868. #endif
  1869. extern pascal OSErr PBHRenameAsync(HParmBlkPtr paramBlock)
  1870.  ONEWORDINLINE(0xA60B);
  1871.  
  1872.  
  1873. #if GENERATING68K && !GENERATINGCFM
  1874. #pragma parameter __D0 PBHRstFLockSync(__A0)
  1875. #endif
  1876. extern pascal OSErr PBHRstFLockSync(HParmBlkPtr paramBlock)
  1877.  ONEWORDINLINE(0xA242);
  1878.  
  1879.  
  1880. #if GENERATING68K && !GENERATINGCFM
  1881. #pragma parameter __D0 PBHRstFLockAsync(__A0)
  1882. #endif
  1883. extern pascal OSErr PBHRstFLockAsync(HParmBlkPtr paramBlock)
  1884.  ONEWORDINLINE(0xA642);
  1885.  
  1886.  
  1887. #if GENERATING68K && !GENERATINGCFM
  1888. #pragma parameter __D0 PBHSetFLockSync(__A0)
  1889. #endif
  1890. extern pascal OSErr PBHSetFLockSync(HParmBlkPtr paramBlock)
  1891.  ONEWORDINLINE(0xA241);
  1892.  
  1893.  
  1894. #if GENERATING68K && !GENERATINGCFM
  1895. #pragma parameter __D0 PBHSetFLockAsync(__A0)
  1896. #endif
  1897. extern pascal OSErr PBHSetFLockAsync(HParmBlkPtr paramBlock)
  1898.  ONEWORDINLINE(0xA641);
  1899.  
  1900.  
  1901. #if GENERATING68K && !GENERATINGCFM
  1902. #pragma parameter __D0 PBHGetFInfoSync(__A0)
  1903. #endif
  1904. extern pascal OSErr PBHGetFInfoSync(HParmBlkPtr paramBlock)
  1905.  ONEWORDINLINE(0xA20C);
  1906.  
  1907.  
  1908. #if GENERATING68K && !GENERATINGCFM
  1909. #pragma parameter __D0 PBHGetFInfoAsync(__A0)
  1910. #endif
  1911. extern pascal OSErr PBHGetFInfoAsync(HParmBlkPtr paramBlock)
  1912.  ONEWORDINLINE(0xA60C);
  1913.  
  1914.  
  1915. #if GENERATING68K && !GENERATINGCFM
  1916. #pragma parameter __D0 PBHSetFInfoSync(__A0)
  1917. #endif
  1918. extern pascal OSErr PBHSetFInfoSync(HParmBlkPtr paramBlock)
  1919.  ONEWORDINLINE(0xA20D);
  1920.  
  1921.  
  1922. #if GENERATING68K && !GENERATINGCFM
  1923. #pragma parameter __D0 PBHSetFInfoAsync(__A0)
  1924. #endif
  1925. extern pascal OSErr PBHSetFInfoAsync(HParmBlkPtr paramBlock)
  1926.  ONEWORDINLINE(0xA60D);
  1927.  
  1928.  
  1929. #if GENERATING68K && !GENERATINGCFM
  1930. #pragma parameter __D0 PBMakeFSSpecSync(__A0)
  1931. #endif
  1932. extern pascal OSErr PBMakeFSSpecSync(HParmBlkPtr paramBlock)
  1933.  TWOWORDINLINE(0x701B, 0xA260);
  1934.  
  1935.  
  1936. #if GENERATING68K && !GENERATINGCFM
  1937. #pragma parameter __D0 PBMakeFSSpecAsync(__A0)
  1938. #endif
  1939. extern pascal OSErr PBMakeFSSpecAsync(HParmBlkPtr paramBlock)
  1940.  TWOWORDINLINE(0x701B, 0xA660);
  1941.  
  1942. extern pascal void FInitQueue(void )
  1943.  ONEWORDINLINE(0xA016);
  1944.  
  1945. extern pascal QHdrPtr GetFSQHdr(void )
  1946.  THREEWORDINLINE(0x2EBC, 0x0000, 0x0360);
  1947.  
  1948. extern pascal QHdrPtr GetVCBQHdr(void )
  1949.  THREEWORDINLINE(0x2EBC, 0x0000, 0x0356);
  1950.  
  1951. #if OLDROUTINELOCATIONS
  1952. extern pascal QHdrPtr GetDrvQHdr(void )
  1953.  THREEWORDINLINE(0x2EBC, 0x0000, 0x0308);
  1954.  
  1955. #endif
  1956. extern pascal OSErr HGetVol(StringPtr volName, short *vRefNum, long *dirID);
  1957.  
  1958. extern pascal OSErr HOpen(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission, short *refNum);
  1959.  
  1960. extern pascal OSErr HOpenDF(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission, short *refNum);
  1961.  
  1962. extern pascal OSErr HOpenRF(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission, short *refNum);
  1963.  
  1964. extern pascal OSErr AllocContig(short refNum, long *count);
  1965.  
  1966. extern pascal OSErr HCreate(short vRefNum, long dirID, ConstStr255Param fileName, OSType creator, OSType fileType);
  1967.  
  1968. extern pascal OSErr DirCreate(short vRefNum, long parentDirID, ConstStr255Param directoryName, long *createdDirID);
  1969.  
  1970. extern pascal OSErr HDelete(short vRefNum, long dirID, ConstStr255Param fileName);
  1971.  
  1972. extern pascal OSErr HGetFInfo(short vRefNum, long dirID, ConstStr255Param fileName, FInfo *fndrInfo);
  1973.  
  1974. extern pascal OSErr HSetFInfo(short vRefNum, long dirID, ConstStr255Param fileName, const FInfo *fndrInfo);
  1975.  
  1976. extern pascal OSErr HSetFLock(short vRefNum, long dirID, ConstStr255Param fileName);
  1977.  
  1978. extern pascal OSErr HRstFLock(short vRefNum, long dirID, ConstStr255Param fileName);
  1979.  
  1980. extern pascal OSErr HRename(short vRefNum, long dirID, ConstStr255Param oldName, ConstStr255Param newName);
  1981.  
  1982. extern pascal OSErr CatMove(short vRefNum, long dirID, ConstStr255Param oldName, long newDirID, ConstStr255Param newName);
  1983.  
  1984. extern pascal OSErr OpenWD(short vRefNum, long dirID, long procID, short *wdRefNum);
  1985.  
  1986. extern pascal OSErr CloseWD(short wdRefNum);
  1987.  
  1988. extern pascal OSErr GetWDInfo(short wdRefNum, short *vRefNum, long *dirID, long *procID);
  1989.  
  1990. /*  shared environment  */
  1991.  
  1992. #if GENERATING68K && !GENERATINGCFM
  1993. #pragma parameter __D0 PBHGetVolParmsSync(__A0)
  1994. #endif
  1995. extern pascal OSErr PBHGetVolParmsSync(HParmBlkPtr paramBlock)
  1996.  TWOWORDINLINE(0x7030, 0xA260);
  1997.  
  1998.  
  1999. #if GENERATING68K && !GENERATINGCFM
  2000. #pragma parameter __D0 PBHGetVolParmsAsync(__A0)
  2001. #endif
  2002. extern pascal OSErr PBHGetVolParmsAsync(HParmBlkPtr paramBlock)
  2003.  TWOWORDINLINE(0x7030, 0xA660);
  2004.  
  2005.  
  2006. #if GENERATING68K && !GENERATINGCFM
  2007. #pragma parameter __D0 PBHGetLogInInfoSync(__A0)
  2008. #endif
  2009. extern pascal OSErr PBHGetLogInInfoSync(HParmBlkPtr paramBlock)
  2010.  TWOWORDINLINE(0x7031, 0xA260);
  2011.  
  2012.  
  2013. #if GENERATING68K && !GENERATINGCFM
  2014. #pragma parameter __D0 PBHGetLogInInfoAsync(__A0)
  2015. #endif
  2016. extern pascal OSErr PBHGetLogInInfoAsync(HParmBlkPtr paramBlock)
  2017.  TWOWORDINLINE(0x7031, 0xA660);
  2018.  
  2019.  
  2020. #if GENERATING68K && !GENERATINGCFM
  2021. #pragma parameter __D0 PBHGetDirAccessSync(__A0)
  2022. #endif
  2023. extern pascal OSErr PBHGetDirAccessSync(HParmBlkPtr paramBlock)
  2024.  TWOWORDINLINE(0x7032, 0xA260);
  2025.  
  2026.  
  2027. #if GENERATING68K && !GENERATINGCFM
  2028. #pragma parameter __D0 PBHGetDirAccessAsync(__A0)
  2029. #endif
  2030. extern pascal OSErr PBHGetDirAccessAsync(HParmBlkPtr paramBlock)
  2031.  TWOWORDINLINE(0x7032, 0xA660);
  2032.  
  2033.  
  2034. #if GENERATING68K && !GENERATINGCFM
  2035. #pragma parameter __D0 PBHSetDirAccessSync(__A0)
  2036. #endif
  2037. extern pascal OSErr PBHSetDirAccessSync(HParmBlkPtr paramBlock)
  2038.  TWOWORDINLINE(0x7033, 0xA260);
  2039.  
  2040.  
  2041. #if GENERATING68K && !GENERATINGCFM
  2042. #pragma parameter __D0 PBHSetDirAccessAsync(__A0)
  2043. #endif
  2044. extern pascal OSErr PBHSetDirAccessAsync(HParmBlkPtr paramBlock)
  2045.  TWOWORDINLINE(0x7033, 0xA660);
  2046.  
  2047.  
  2048. #if GENERATING68K && !GENERATINGCFM
  2049. #pragma parameter __D0 PBHMapIDSync(__A0)
  2050. #endif
  2051. extern pascal OSErr PBHMapIDSync(HParmBlkPtr paramBlock)
  2052.  TWOWORDINLINE(0x7034, 0xA260);
  2053.  
  2054.  
  2055. #if GENERATING68K && !GENERATINGCFM
  2056. #pragma parameter __D0 PBHMapIDAsync(__A0)
  2057. #endif
  2058. extern pascal OSErr PBHMapIDAsync(HParmBlkPtr paramBlock)
  2059.  TWOWORDINLINE(0x7034, 0xA660);
  2060.  
  2061.  
  2062. #if GENERATING68K && !GENERATINGCFM
  2063. #pragma parameter __D0 PBHMapNameSync(__A0)
  2064. #endif
  2065. extern pascal OSErr PBHMapNameSync(HParmBlkPtr paramBlock)
  2066.  TWOWORDINLINE(0x7035, 0xA260);
  2067.  
  2068.  
  2069. #if GENERATING68K && !GENERATINGCFM
  2070. #pragma parameter __D0 PBHMapNameAsync(__A0)
  2071. #endif
  2072. extern pascal OSErr PBHMapNameAsync(HParmBlkPtr paramBlock)
  2073.  TWOWORDINLINE(0x7035, 0xA660);
  2074.  
  2075.  
  2076. #if GENERATING68K && !GENERATINGCFM
  2077. #pragma parameter __D0 PBHCopyFileSync(__A0)
  2078. #endif
  2079. extern pascal OSErr PBHCopyFileSync(HParmBlkPtr paramBlock)
  2080.  TWOWORDINLINE(0x7036, 0xA260);
  2081.  
  2082.  
  2083. #if GENERATING68K && !GENERATINGCFM
  2084. #pragma parameter __D0 PBHCopyFileAsync(__A0)
  2085. #endif
  2086. extern pascal OSErr PBHCopyFileAsync(HParmBlkPtr paramBlock)
  2087.  TWOWORDINLINE(0x7036, 0xA660);
  2088.  
  2089.  
  2090. #if GENERATING68K && !GENERATINGCFM
  2091. #pragma parameter __D0 PBHMoveRenameSync(__A0)
  2092. #endif
  2093. extern pascal OSErr PBHMoveRenameSync(HParmBlkPtr paramBlock)
  2094.  TWOWORDINLINE(0x7037, 0xA260);
  2095.  
  2096.  
  2097. #if GENERATING68K && !GENERATINGCFM
  2098. #pragma parameter __D0 PBHMoveRenameAsync(__A0)
  2099. #endif
  2100. extern pascal OSErr PBHMoveRenameAsync(HParmBlkPtr paramBlock)
  2101.  TWOWORDINLINE(0x7037, 0xA660);
  2102.  
  2103.  
  2104. #if GENERATING68K && !GENERATINGCFM
  2105. #pragma parameter __D0 PBHOpenDenySync(__A0)
  2106. #endif
  2107. extern pascal OSErr PBHOpenDenySync(HParmBlkPtr paramBlock)
  2108.  TWOWORDINLINE(0x7038, 0xA260);
  2109.  
  2110.  
  2111. #if GENERATING68K && !GENERATINGCFM
  2112. #pragma parameter __D0 PBHOpenDenyAsync(__A0)
  2113. #endif
  2114. extern pascal OSErr PBHOpenDenyAsync(HParmBlkPtr paramBlock)
  2115.  TWOWORDINLINE(0x7038, 0xA660);
  2116.  
  2117.  
  2118. #if GENERATING68K && !GENERATINGCFM
  2119. #pragma parameter __D0 PBHOpenRFDenySync(__A0)
  2120. #endif
  2121. extern pascal OSErr PBHOpenRFDenySync(HParmBlkPtr paramBlock)
  2122.  TWOWORDINLINE(0x7039, 0xA260);
  2123.  
  2124.  
  2125. #if GENERATING68K && !GENERATINGCFM
  2126. #pragma parameter __D0 PBHOpenRFDenyAsync(__A0)
  2127. #endif
  2128. extern pascal OSErr PBHOpenRFDenyAsync(HParmBlkPtr paramBlock)
  2129.  TWOWORDINLINE(0x7039, 0xA660);
  2130.  
  2131.  
  2132. #if GENERATING68K && !GENERATINGCFM
  2133. #pragma parameter __D0 PBExchangeFilesSync(__A0)
  2134. #endif
  2135. extern pascal OSErr PBExchangeFilesSync(HParmBlkPtr paramBlock)
  2136.  TWOWORDINLINE(0x7017, 0xA260);
  2137.  
  2138.  
  2139. #if GENERATING68K && !GENERATINGCFM
  2140. #pragma parameter __D0 PBExchangeFilesAsync(__A0)
  2141. #endif
  2142. extern pascal OSErr PBExchangeFilesAsync(HParmBlkPtr paramBlock)
  2143.  TWOWORDINLINE(0x7017, 0xA660);
  2144.  
  2145.  
  2146. #if GENERATING68K && !GENERATINGCFM
  2147. #pragma parameter __D0 PBCreateFileIDRefSync(__A0)
  2148. #endif
  2149. extern pascal OSErr PBCreateFileIDRefSync(HParmBlkPtr paramBlock)
  2150.  TWOWORDINLINE(0x7014, 0xA260);
  2151.  
  2152.  
  2153. #if GENERATING68K && !GENERATINGCFM
  2154. #pragma parameter __D0 PBCreateFileIDRefAsync(__A0)
  2155. #endif
  2156. extern pascal OSErr PBCreateFileIDRefAsync(HParmBlkPtr paramBlock)
  2157.  TWOWORDINLINE(0x7014, 0xA660);
  2158.  
  2159.  
  2160. #if GENERATING68K && !GENERATINGCFM
  2161. #pragma parameter __D0 PBResolveFileIDRefSync(__A0)
  2162. #endif
  2163. extern pascal OSErr PBResolveFileIDRefSync(HParmBlkPtr paramBlock)
  2164.  TWOWORDINLINE(0x7016, 0xA260);
  2165.  
  2166.  
  2167. #if GENERATING68K && !GENERATINGCFM
  2168. #pragma parameter __D0 PBResolveFileIDRefAsync(__A0)
  2169. #endif
  2170. extern pascal OSErr PBResolveFileIDRefAsync(HParmBlkPtr paramBlock)
  2171.  TWOWORDINLINE(0x7016, 0xA660);
  2172.  
  2173.  
  2174. #if GENERATING68K && !GENERATINGCFM
  2175. #pragma parameter __D0 PBDeleteFileIDRefSync(__A0)
  2176. #endif
  2177. extern pascal OSErr PBDeleteFileIDRefSync(HParmBlkPtr paramBlock)
  2178.  TWOWORDINLINE(0x7015, 0xA260);
  2179.  
  2180.  
  2181. #if GENERATING68K && !GENERATINGCFM
  2182. #pragma parameter __D0 PBDeleteFileIDRefAsync(__A0)
  2183. #endif
  2184. extern pascal OSErr PBDeleteFileIDRefAsync(HParmBlkPtr paramBlock)
  2185.  TWOWORDINLINE(0x7015, 0xA660);
  2186.  
  2187.  
  2188. #if GENERATING68K && !GENERATINGCFM
  2189. #pragma parameter __D0 PBGetForeignPrivsSync(__A0)
  2190. #endif
  2191. extern pascal OSErr PBGetForeignPrivsSync(HParmBlkPtr paramBlock)
  2192.  TWOWORDINLINE(0x7060, 0xA260);
  2193.  
  2194.  
  2195. #if GENERATING68K && !GENERATINGCFM
  2196. #pragma parameter __D0 PBGetForeignPrivsAsync(__A0)
  2197. #endif
  2198. extern pascal OSErr PBGetForeignPrivsAsync(HParmBlkPtr paramBlock)
  2199.  TWOWORDINLINE(0x7060, 0xA660);
  2200.  
  2201.  
  2202. #if GENERATING68K && !GENERATINGCFM
  2203. #pragma parameter __D0 PBSetForeignPrivsSync(__A0)
  2204. #endif
  2205. extern pascal OSErr PBSetForeignPrivsSync(HParmBlkPtr paramBlock)
  2206.  TWOWORDINLINE(0x7061, 0xA260);
  2207.  
  2208.  
  2209. #if GENERATING68K && !GENERATINGCFM
  2210. #pragma parameter __D0 PBSetForeignPrivsAsync(__A0)
  2211. #endif
  2212. extern pascal OSErr PBSetForeignPrivsAsync(HParmBlkPtr paramBlock)
  2213.  TWOWORDINLINE(0x7061, 0xA660);
  2214.  
  2215. /*  Desktop Manager  */
  2216.  
  2217. #if GENERATING68K && !GENERATINGCFM
  2218. #pragma parameter __D0 PBDTGetPath(__A0)
  2219. #endif
  2220. extern pascal OSErr PBDTGetPath(DTPBPtr paramBlock)
  2221.  TWOWORDINLINE(0x7020, 0xA260);
  2222.  
  2223.  
  2224. #if GENERATING68K && !GENERATINGCFM
  2225. #pragma parameter __D0 PBDTCloseDown(__A0)
  2226. #endif
  2227. extern pascal OSErr PBDTCloseDown(DTPBPtr paramBlock)
  2228.  TWOWORDINLINE(0x7021, 0xA260);
  2229.  
  2230.  
  2231. #if GENERATING68K && !GENERATINGCFM
  2232. #pragma parameter __D0 PBDTAddIconSync(__A0)
  2233. #endif
  2234. extern pascal OSErr PBDTAddIconSync(DTPBPtr paramBlock)
  2235.  TWOWORDINLINE(0x7022, 0xA260);
  2236.  
  2237.  
  2238. #if GENERATING68K && !GENERATINGCFM
  2239. #pragma parameter __D0 PBDTAddIconAsync(__A0)
  2240. #endif
  2241. extern pascal OSErr PBDTAddIconAsync(DTPBPtr paramBlock)
  2242.  TWOWORDINLINE(0x7022, 0xA660);
  2243.  
  2244.  
  2245. #if GENERATING68K && !GENERATINGCFM
  2246. #pragma parameter __D0 PBDTGetIconSync(__A0)
  2247. #endif
  2248. extern pascal OSErr PBDTGetIconSync(DTPBPtr paramBlock)
  2249.  TWOWORDINLINE(0x7023, 0xA260);
  2250.  
  2251.  
  2252. #if GENERATING68K && !GENERATINGCFM
  2253. #pragma parameter __D0 PBDTGetIconAsync(__A0)
  2254. #endif
  2255. extern pascal OSErr PBDTGetIconAsync(DTPBPtr paramBlock)
  2256.  TWOWORDINLINE(0x7023, 0xA660);
  2257.  
  2258.  
  2259. #if GENERATING68K && !GENERATINGCFM
  2260. #pragma parameter __D0 PBDTGetIconInfoSync(__A0)
  2261. #endif
  2262. extern pascal OSErr PBDTGetIconInfoSync(DTPBPtr paramBlock)
  2263.  TWOWORDINLINE(0x7024, 0xA260);
  2264.  
  2265.  
  2266. #if GENERATING68K && !GENERATINGCFM
  2267. #pragma parameter __D0 PBDTGetIconInfoAsync(__A0)
  2268. #endif
  2269. extern pascal OSErr PBDTGetIconInfoAsync(DTPBPtr paramBlock)
  2270.  TWOWORDINLINE(0x7024, 0xA660);
  2271.  
  2272.  
  2273. #if GENERATING68K && !GENERATINGCFM
  2274. #pragma parameter __D0 PBDTAddAPPLSync(__A0)
  2275. #endif
  2276. extern pascal OSErr PBDTAddAPPLSync(DTPBPtr paramBlock)
  2277.  TWOWORDINLINE(0x7025, 0xA260);
  2278.  
  2279.  
  2280. #if GENERATING68K && !GENERATINGCFM
  2281. #pragma parameter __D0 PBDTAddAPPLAsync(__A0)
  2282. #endif
  2283. extern pascal OSErr PBDTAddAPPLAsync(DTPBPtr paramBlock)
  2284.  TWOWORDINLINE(0x7025, 0xA660);
  2285.  
  2286.  
  2287. #if GENERATING68K && !GENERATINGCFM
  2288. #pragma parameter __D0 PBDTRemoveAPPLSync(__A0)
  2289. #endif
  2290. extern pascal OSErr PBDTRemoveAPPLSync(DTPBPtr paramBlock)
  2291.  TWOWORDINLINE(0x7026, 0xA260);
  2292.  
  2293.  
  2294. #if GENERATING68K && !GENERATINGCFM
  2295. #pragma parameter __D0 PBDTRemoveAPPLAsync(__A0)
  2296. #endif
  2297. extern pascal OSErr PBDTRemoveAPPLAsync(DTPBPtr paramBlock)
  2298.  TWOWORDINLINE(0x7026, 0xA660);
  2299.  
  2300.  
  2301. #if GENERATING68K && !GENERATINGCFM
  2302. #pragma parameter __D0 PBDTGetAPPLSync(__A0)
  2303. #endif
  2304. extern pascal OSErr PBDTGetAPPLSync(DTPBPtr paramBlock)
  2305.  TWOWORDINLINE(0x7027, 0xA260);
  2306.  
  2307.  
  2308. #if GENERATING68K && !GENERATINGCFM
  2309. #pragma parameter __D0 PBDTGetAPPLAsync(__A0)
  2310. #endif
  2311. extern pascal OSErr PBDTGetAPPLAsync(DTPBPtr paramBlock)
  2312.  TWOWORDINLINE(0x7027, 0xA660);
  2313.  
  2314.  
  2315. #if GENERATING68K && !GENERATINGCFM
  2316. #pragma parameter __D0 PBDTSetCommentSync(__A0)
  2317. #endif
  2318. extern pascal OSErr PBDTSetCommentSync(DTPBPtr paramBlock)
  2319.  TWOWORDINLINE(0x7028, 0xA260);
  2320.  
  2321.  
  2322. #if GENERATING68K && !GENERATINGCFM
  2323. #pragma parameter __D0 PBDTSetCommentAsync(__A0)
  2324. #endif
  2325. extern pascal OSErr PBDTSetCommentAsync(DTPBPtr paramBlock)
  2326.  TWOWORDINLINE(0x7028, 0xA660);
  2327.  
  2328.  
  2329. #if GENERATING68K && !GENERATINGCFM
  2330. #pragma parameter __D0 PBDTRemoveCommentSync(__A0)
  2331. #endif
  2332. extern pascal OSErr PBDTRemoveCommentSync(DTPBPtr paramBlock)
  2333.  TWOWORDINLINE(0x7029, 0xA260);
  2334.  
  2335.  
  2336. #if GENERATING68K && !GENERATINGCFM
  2337. #pragma parameter __D0 PBDTRemoveCommentAsync(__A0)
  2338. #endif
  2339. extern pascal OSErr PBDTRemoveCommentAsync(DTPBPtr paramBlock)
  2340.  TWOWORDINLINE(0x7029, 0xA660);
  2341.  
  2342.  
  2343. #if GENERATING68K && !GENERATINGCFM
  2344. #pragma parameter __D0 PBDTGetCommentSync(__A0)
  2345. #endif
  2346. extern pascal OSErr PBDTGetCommentSync(DTPBPtr paramBlock)
  2347.  TWOWORDINLINE(0x702A, 0xA260);
  2348.  
  2349.  
  2350. #if GENERATING68K && !GENERATINGCFM
  2351. #pragma parameter __D0 PBDTGetCommentAsync(__A0)
  2352. #endif
  2353. extern pascal OSErr PBDTGetCommentAsync(DTPBPtr paramBlock)
  2354.  TWOWORDINLINE(0x702A, 0xA660);
  2355.  
  2356.  
  2357. #if GENERATING68K && !GENERATINGCFM
  2358. #pragma parameter __D0 PBDTFlushSync(__A0)
  2359. #endif
  2360. extern pascal OSErr PBDTFlushSync(DTPBPtr paramBlock)
  2361.  TWOWORDINLINE(0x702B, 0xA260);
  2362.  
  2363.  
  2364. #if GENERATING68K && !GENERATINGCFM
  2365. #pragma parameter __D0 PBDTFlushAsync(__A0)
  2366. #endif
  2367. extern pascal OSErr PBDTFlushAsync(DTPBPtr paramBlock)
  2368.  TWOWORDINLINE(0x702B, 0xA660);
  2369.  
  2370.  
  2371. #if GENERATING68K && !GENERATINGCFM
  2372. #pragma parameter __D0 PBDTResetSync(__A0)
  2373. #endif
  2374. extern pascal OSErr PBDTResetSync(DTPBPtr paramBlock)
  2375.  TWOWORDINLINE(0x702C, 0xA260);
  2376.  
  2377.  
  2378. #if GENERATING68K && !GENERATINGCFM
  2379. #pragma parameter __D0 PBDTResetAsync(__A0)
  2380. #endif
  2381. extern pascal OSErr PBDTResetAsync(DTPBPtr paramBlock)
  2382.  TWOWORDINLINE(0x702C, 0xA660);
  2383.  
  2384.  
  2385. #if GENERATING68K && !GENERATINGCFM
  2386. #pragma parameter __D0 PBDTGetInfoSync(__A0)
  2387. #endif
  2388. extern pascal OSErr PBDTGetInfoSync(DTPBPtr paramBlock)
  2389.  TWOWORDINLINE(0x702D, 0xA260);
  2390.  
  2391.  
  2392. #if GENERATING68K && !GENERATINGCFM
  2393. #pragma parameter __D0 PBDTGetInfoAsync(__A0)
  2394. #endif
  2395. extern pascal OSErr PBDTGetInfoAsync(DTPBPtr paramBlock)
  2396.  TWOWORDINLINE(0x702D, 0xA660);
  2397.  
  2398.  
  2399. #if GENERATING68K && !GENERATINGCFM
  2400. #pragma parameter __D0 PBDTOpenInform(__A0)
  2401. #endif
  2402. extern pascal OSErr PBDTOpenInform(DTPBPtr paramBlock)
  2403.  TWOWORDINLINE(0x702E, 0xA060);
  2404.  
  2405.  
  2406. #if GENERATING68K && !GENERATINGCFM
  2407. #pragma parameter __D0 PBDTDeleteSync(__A0)
  2408. #endif
  2409. extern pascal OSErr PBDTDeleteSync(DTPBPtr paramBlock)
  2410.  TWOWORDINLINE(0x702F, 0xA060);
  2411.  
  2412.  
  2413. #if GENERATING68K && !GENERATINGCFM
  2414. #pragma parameter __D0 PBDTDeleteAsync(__A0)
  2415. #endif
  2416. extern pascal OSErr PBDTDeleteAsync(DTPBPtr paramBlock)
  2417.  TWOWORDINLINE(0x702F, 0xA460);
  2418.  
  2419. /*  VolumeMount traps  */
  2420.  
  2421. #if GENERATING68K && !GENERATINGCFM
  2422. #pragma parameter __D0 PBGetVolMountInfoSize(__A0)
  2423. #endif
  2424. extern pascal OSErr PBGetVolMountInfoSize(ParmBlkPtr paramBlock)
  2425.  TWOWORDINLINE(0x703F, 0xA260);
  2426.  
  2427.  
  2428. #if GENERATING68K && !GENERATINGCFM
  2429. #pragma parameter __D0 PBGetVolMountInfo(__A0)
  2430. #endif
  2431. extern pascal OSErr PBGetVolMountInfo(ParmBlkPtr paramBlock)
  2432.  TWOWORDINLINE(0x7040, 0xA260);
  2433.  
  2434.  
  2435. #if GENERATING68K && !GENERATINGCFM
  2436. #pragma parameter __D0 PBVolumeMount(__A0)
  2437. #endif
  2438. extern pascal OSErr PBVolumeMount(ParmBlkPtr paramBlock)
  2439.  TWOWORDINLINE(0x7041, 0xA260);
  2440.  
  2441. /*  FSp traps  */
  2442. extern pascal OSErr FSMakeFSSpec(short vRefNum, long dirID, ConstStr255Param fileName, FSSpec *spec)
  2443.  TWOWORDINLINE(0x7001, 0xAA52);
  2444.  
  2445. extern pascal OSErr FSpOpenDF(const FSSpec *spec, SInt8 permission, short *refNum)
  2446.  TWOWORDINLINE(0x7002, 0xAA52);
  2447.  
  2448. extern pascal OSErr FSpOpenRF(const FSSpec *spec, SInt8 permission, short *refNum)
  2449.  TWOWORDINLINE(0x7003, 0xAA52);
  2450.  
  2451. extern pascal OSErr FSpCreate(const FSSpec *spec, OSType creator, OSType fileType, ScriptCode scriptTag)
  2452.  TWOWORDINLINE(0x7004, 0xAA52);
  2453.  
  2454. extern pascal OSErr FSpDirCreate(const FSSpec *spec, ScriptCode scriptTag, long *createdDirID)
  2455.  TWOWORDINLINE(0x7005, 0xAA52);
  2456.  
  2457. extern pascal OSErr FSpDelete(const FSSpec *spec)
  2458.  TWOWORDINLINE(0x7006, 0xAA52);
  2459.  
  2460. extern pascal OSErr FSpGetFInfo(const FSSpec *spec, FInfo *fndrInfo)
  2461.  TWOWORDINLINE(0x7007, 0xAA52);
  2462.  
  2463. extern pascal OSErr FSpSetFInfo(const FSSpec *spec, const FInfo *fndrInfo)
  2464.  TWOWORDINLINE(0x7008, 0xAA52);
  2465.  
  2466. extern pascal OSErr FSpSetFLock(const FSSpec *spec)
  2467.  TWOWORDINLINE(0x7009, 0xAA52);
  2468.  
  2469. extern pascal OSErr FSpRstFLock(const FSSpec *spec)
  2470.  TWOWORDINLINE(0x700A, 0xAA52);
  2471.  
  2472. extern pascal OSErr FSpRename(const FSSpec *spec, ConstStr255Param newName)
  2473.  TWOWORDINLINE(0x700B, 0xAA52);
  2474.  
  2475. extern pascal OSErr FSpCatMove(const FSSpec *source, const FSSpec *dest)
  2476.  TWOWORDINLINE(0x700C, 0xAA52);
  2477.  
  2478. extern pascal OSErr FSpExchangeFiles(const FSSpec *source, const FSSpec *dest)
  2479.  TWOWORDINLINE(0x700F, 0xAA52);
  2480.  
  2481.  
  2482. #if GENERATING68K && !GENERATINGCFM
  2483. #pragma parameter __D0 PBShareSync(__A0)
  2484. #endif
  2485. extern pascal OSErr PBShareSync(HParmBlkPtr paramBlock)
  2486.  TWOWORDINLINE(0x7042, 0xA260);
  2487.  
  2488.  
  2489. #if GENERATING68K && !GENERATINGCFM
  2490. #pragma parameter __D0 PBShareAsync(__A0)
  2491. #endif
  2492. extern pascal OSErr PBShareAsync(HParmBlkPtr paramBlock)
  2493.  TWOWORDINLINE(0x7042, 0xA660);
  2494.  
  2495.  
  2496. #if GENERATING68K && !GENERATINGCFM
  2497. #pragma parameter __D0 PBUnshareSync(__A0)
  2498. #endif
  2499. extern pascal OSErr PBUnshareSync(HParmBlkPtr paramBlock)
  2500.  TWOWORDINLINE(0x7043, 0xA260);
  2501.  
  2502.  
  2503. #if GENERATING68K && !GENERATINGCFM
  2504. #pragma parameter __D0 PBUnshareAsync(__A0)
  2505. #endif
  2506. extern pascal OSErr PBUnshareAsync(HParmBlkPtr paramBlock)
  2507.  TWOWORDINLINE(0x7043, 0xA660);
  2508.  
  2509.  
  2510. #if GENERATING68K && !GENERATINGCFM
  2511. #pragma parameter __D0 PBGetUGEntrySync(__A0)
  2512. #endif
  2513. extern pascal OSErr PBGetUGEntrySync(HParmBlkPtr paramBlock)
  2514.  TWOWORDINLINE(0x7044, 0xA260);
  2515.  
  2516.  
  2517. #if GENERATING68K && !GENERATINGCFM
  2518. #pragma parameter __D0 PBGetUGEntryAsync(__A0)
  2519. #endif
  2520. extern pascal OSErr PBGetUGEntryAsync(HParmBlkPtr paramBlock)
  2521.  TWOWORDINLINE(0x7044, 0xA660);
  2522.  
  2523. #if OLDROUTINENAMES && !GENERATINGCFM
  2524. /*
  2525.     PBGetAltAccess and PBSetAltAccess are obsolete and will not be supported 
  2526.     on PowerPC. Equivalent functionality is provided by the routines 
  2527.     PBGetForeignPrivs and PBSetForeignPrivs.
  2528. */
  2529.  
  2530. #if GENERATING68K && !GENERATINGCFM
  2531. #pragma parameter __D0 PBGetAltAccessSync(__A0)
  2532. #endif
  2533. extern pascal OSErr PBGetAltAccessSync(HParmBlkPtr paramBlock)
  2534.  TWOWORDINLINE(0x7060, 0xA060);
  2535.  
  2536.  
  2537. #if GENERATING68K && !GENERATINGCFM
  2538. #pragma parameter __D0 PBGetAltAccessAsync(__A0)
  2539. #endif
  2540. extern pascal OSErr PBGetAltAccessAsync(HParmBlkPtr paramBlock)
  2541.  TWOWORDINLINE(0x7060, 0xA460);
  2542.  
  2543.  
  2544. #if GENERATING68K && !GENERATINGCFM
  2545. #pragma parameter __D0 PBSetAltAccessSync(__A0)
  2546. #endif
  2547. extern pascal OSErr PBSetAltAccessSync(HParmBlkPtr paramBlock)
  2548.  TWOWORDINLINE(0x7061, 0xA060);
  2549.  
  2550.  
  2551. #if GENERATING68K && !GENERATINGCFM
  2552. #pragma parameter __D0 PBSetAltAccessAsync(__A0)
  2553. #endif
  2554. extern pascal OSErr PBSetAltAccessAsync(HParmBlkPtr paramBlock)
  2555.  TWOWORDINLINE(0x7061, 0xA460);
  2556.  
  2557. #define PBSetAltAccess(pb, async) ((async) ? PBSetAltAccessAsync(pb) : PBSetAltAccessSync(pb))
  2558. #define PBGetAltAccess(pb, async) ((async) ? PBGetAltAccessAsync(pb) : PBGetAltAccessSync(pb))
  2559. #endif
  2560. #if OLDROUTINENAMES
  2561. /*
  2562.     The PBxxx() routines are obsolete.  
  2563.     
  2564.     Use the PBxxxSync() or PBxxxAsync() version instead.
  2565. */
  2566. #define PBGetVInfo(pb, async) ((async) ? PBGetVInfoAsync(pb) : PBGetVInfoSync(pb))
  2567. #define PBXGetVolInfo(pb, async) ((async) ? PBXGetVolInfoAsync(pb) : PBXGetVolInfoSync(pb))
  2568. #define PBGetVol(pb, async) ((async) ? PBGetVolAsync(pb) : PBGetVolSync(pb))
  2569. #define PBSetVol(pb, async) ((async) ? PBSetVolAsync(pb) : PBSetVolSync(pb))
  2570. #define PBFlushVol(pb, async) ((async) ? PBFlushVolAsync(pb) : PBFlushVolSync(pb))
  2571. #define PBCreate(pb, async) ((async) ? PBCreateAsync(pb) : PBCreateSync(pb))
  2572. #define PBDelete(pb, async) ((async) ? PBDeleteAsync(pb) : PBDeleteSync(pb))
  2573. #define PBOpenDF(pb, async) ((async) ? PBOpenDFAsync(pb) : PBOpenDFSync(pb))
  2574. #define PBOpenRF(pb, async) ((async) ? PBOpenRFAsync(pb) : PBOpenRFSync(pb))
  2575. #define PBRename(pb, async) ((async) ? PBRenameAsync(pb) : PBRenameSync(pb))
  2576. #define PBGetFInfo(pb, async) ((async) ? PBGetFInfoAsync(pb) : PBGetFInfoSync(pb))
  2577. #define PBSetFInfo(pb, async) ((async) ? PBSetFInfoAsync(pb) : PBSetFInfoSync(pb))
  2578. #define PBSetFLock(pb, async) ((async) ? PBSetFLockAsync(pb) : PBSetFLockSync(pb))
  2579. #define PBRstFLock(pb, async) ((async) ? PBRstFLockAsync(pb) : PBRstFLockSync(pb))
  2580. #define PBSetFVers(pb, async) ((async) ? PBSetFVersAsync(pb) : PBSetFVersSync(pb))
  2581. #define PBAllocate(pb, async) ((async) ? PBAllocateAsync(pb) : PBAllocateSync(pb))
  2582. #define PBGetEOF(pb, async) ((async) ? PBGetEOFAsync(pb) : PBGetEOFSync(pb))
  2583. #define PBSetEOF(pb, async) ((async) ? PBSetEOFAsync(pb) : PBSetEOFSync(pb))
  2584. #define PBGetFPos(pb, async) ((async) ? PBGetFPosAsync(pb) : PBGetFPosSync(pb))
  2585. #define PBSetFPos(pb, async) ((async) ? PBSetFPosAsync(pb) : PBSetFPosSync(pb))
  2586. #define PBFlushFile(pb, async) ((async) ? PBFlushFileAsync(pb) : PBFlushFileSync(pb))
  2587. #define PBCatSearch(pb, async) ((async) ? PBCatSearchAsync(pb) : PBCatSearchSync(pb))
  2588. #define PBOpenWD(pb, async) ((async) ? PBOpenWDAsync(pb) : PBOpenWDSync(pb))
  2589. #define PBCloseWD(pb, async) ((async) ? PBCloseWDAsync(pb) : PBCloseWDSync(pb))
  2590. #define PBHSetVol(pb, async) ((async) ? PBHSetVolAsync(pb) : PBHSetVolSync(pb))
  2591. #define PBHGetVol(pb, async) ((async) ? PBHGetVolAsync(pb) : PBHGetVolSync(pb))
  2592. #define PBCatMove(pb, async) ((async) ? PBCatMoveAsync(pb) : PBCatMoveSync(pb))
  2593. #define PBDirCreate(pb, async) ((async) ? PBDirCreateAsync(pb) : PBDirCreateSync(pb))
  2594. #define PBGetWDInfo(pb, async) ((async) ? PBGetWDInfoAsync(pb) : PBGetWDInfoSync(pb))
  2595. #define PBGetFCBInfo(pb, async) ((async) ? PBGetFCBInfoAsync(pb) : PBGetFCBInfoSync(pb))
  2596. #define PBGetCatInfo(pb, async) ((async) ? PBGetCatInfoAsync(pb) : PBGetCatInfoSync(pb))
  2597. #define PBSetCatInfo(pb, async) ((async) ? PBSetCatInfoAsync(pb) : PBSetCatInfoSync(pb))
  2598. #define PBAllocContig(pb, async) ((async) ? PBAllocContigAsync(pb) : PBAllocContigSync(pb))
  2599. #define PBLockRange(pb, async) ((async) ? PBLockRangeAsync(pb) : PBLockRangeSync(pb))
  2600. #define PBUnlockRange(pb, async) ((async) ? PBUnlockRangeAsync(pb) : PBUnlockRangeSync(pb))
  2601. #define PBSetVInfo(pb, async) ((async) ? PBSetVInfoAsync(pb) : PBSetVInfoSync(pb))
  2602. #define PBHGetVInfo(pb, async) ((async) ? PBHGetVInfoAsync(pb) : PBHGetVInfoSync(pb))
  2603. #define PBHOpen(pb, async) ((async) ? PBHOpenAsync(pb) : PBHOpenSync(pb))
  2604. #define PBHOpenRF(pb, async) ((async) ? PBHOpenRFAsync(pb) : PBHOpenRFSync(pb))
  2605. #define PBHOpenDF(pb, async) ((async) ? PBHOpenDFAsync(pb) : PBHOpenDFSync(pb))
  2606. #define PBHCreate(pb, async) ((async) ? PBHCreateAsync(pb) : PBHCreateSync(pb))
  2607. #define PBHDelete(pb, async) ((async) ? PBHDeleteAsync(pb) : PBHDeleteSync(pb))
  2608. #define PBHRename(pb, async) ((async) ? PBHRenameAsync(pb) : PBHRenameSync(pb))
  2609. #define PBHRstFLock(pb, async) ((async) ? PBHRstFLockAsync(pb) : PBHRstFLockSync(pb))
  2610. #define PBHSetFLock(pb, async) ((async) ? PBHSetFLockAsync(pb) : PBHSetFLockSync(pb))
  2611. #define PBHGetFInfo(pb, async) ((async) ? PBHGetFInfoAsync(pb) : PBHGetFInfoSync(pb))
  2612. #define PBHSetFInfo(pb, async) ((async) ? PBHSetFInfoAsync(pb) : PBHSetFInfoSync(pb))
  2613. #define PBMakeFSSpec(pb, async) ((async) ? PBMakeFSSpecAsync(pb) : PBMakeFSSpecSync(pb))
  2614. #define PBHGetVolParms(pb, async) ((async) ? PBHGetVolParmsAsync(pb) : PBHGetVolParmsSync(pb))
  2615. #define PBHGetLogInInfo(pb, async) ((async) ? PBHGetLogInInfoAsync(pb) : PBHGetLogInInfoSync(pb))
  2616. #define PBHGetDirAccess(pb, async) ((async) ? PBHGetDirAccessAsync(pb) : PBHGetDirAccessSync(pb))
  2617. #define PBHSetDirAccess(pb, async) ((async) ? PBHSetDirAccessAsync(pb) : PBHSetDirAccessSync(pb))
  2618. #define PBHMapID(pb, async) ((async) ? PBHMapIDAsync(pb) : PBHMapIDSync(pb))
  2619. #define PBHMapName(pb, async) ((async) ? PBHMapNameAsync(pb) : PBHMapNameSync(pb))
  2620. #define PBHCopyFile(pb, async) ((async) ? PBHCopyFileAsync(pb) : PBHCopyFileSync(pb))
  2621. #define PBHMoveRename(pb, async) ((async) ? PBHMoveRenameAsync(pb) : PBHMoveRenameSync(pb))
  2622. #define PBHOpenDeny(pb, async) ((async) ? PBHOpenDenyAsync(pb) : PBHOpenDenySync(pb))
  2623. #define PBHOpenRFDeny(pb, async) ((async) ? PBHOpenRFDenyAsync(pb) : PBHOpenRFDenySync(pb))
  2624. #define PBExchangeFiles(pb, async) ((async) ? PBExchangeFilesAsync(pb) : PBExchangeFilesSync(pb))
  2625. #define PBCreateFileIDRef(pb, async) ((async) ? PBCreateFileIDRefAsync(pb) : PBCreateFileIDRefSync(pb))
  2626. #define PBResolveFileIDRef(pb, async) ((async) ? PBResolveFileIDRefAsync(pb) : PBResolveFileIDRefSync(pb))
  2627. #define PBDeleteFileIDRef(pb, async) ((async) ? PBDeleteFileIDRefAsync(pb) : PBDeleteFileIDRefSync(pb))
  2628. #define PBGetForeignPrivs(pb, async) ((async) ? PBGetForeignPrivsAsync(pb) : PBGetForeignPrivsSync(pb))
  2629. #define PBSetForeignPrivs(pb, async) ((async) ? PBSetForeignPrivsAsync(pb) : PBSetForeignPrivsSync(pb))
  2630. #define PBDTAddIcon(pb, async) ((async) ? PBDTAddIconAsync(pb) : PBDTAddIconSync(pb))
  2631. #define PBDTGetIcon(pb, async) ((async) ? PBDTGetIconAsync(pb) : PBDTGetIconSync(pb))
  2632. #define PBDTGetIconInfo(pb, async) ((async) ? PBDTGetIconInfoAsync(pb) : PBDTGetIconInfoSync(pb))
  2633. #define PBDTAddAPPL(pb, async) ((async) ? PBDTAddAPPLAsync(pb) : PBDTAddAPPLSync(pb))
  2634. #define PBDTRemoveAPPL(pb, async) ((async) ? PBDTRemoveAPPLAsync(pb) : PBDTRemoveAPPLSync(pb))
  2635. #define PBDTGetAPPL(pb, async) ((async) ? PBDTGetAPPLAsync(pb) : PBDTGetAPPLSync(pb))
  2636. #define PBDTSetComment(pb, async) ((async) ? PBDTSetCommentAsync(pb) : PBDTSetCommentSync(pb))
  2637. #define PBDTRemoveComment(pb, async) ((async) ? PBDTRemoveCommentAsync(pb) : PBDTRemoveCommentSync(pb))
  2638. #define PBDTGetComment(pb, async) ((async) ? PBDTGetCommentAsync(pb) : PBDTGetCommentSync(pb))
  2639. #define PBDTFlush(pb, async) ((async) ? PBDTFlushAsync(pb) : PBDTFlushSync(pb))
  2640. #define PBDTReset(pb, async) ((async) ? PBDTResetAsync(pb) : PBDTResetSync(pb))
  2641. #define PBDTGetInfo(pb, async) ((async) ? PBDTGetInfoAsync(pb) : PBDTGetInfoSync(pb))
  2642. #define PBDTDelete(pb, async) ((async) ? PBDTDeleteAsync(pb) : PBDTDeleteSync(pb))
  2643. #if OLDROUTINELOCATIONS
  2644. #define PBOpen(pb, async) ((async) ? PBOpenAsync(pb) : PBOpenSync(pb))
  2645. #define PBClose(pb, async) ((async) ? PBCloseAsync(pb) : PBCloseSync(pb))
  2646. #define PBRead(pb, async) ((async) ? PBReadAsync(pb) : PBReadSync(pb))
  2647. #define PBWrite(pb, async) ((async) ? PBWriteAsync(pb) : PBWriteSync(pb))
  2648. #endif
  2649. #endif
  2650. #endif
  2651.  
  2652. #if PRAGMA_ALIGN_SUPPORTED
  2653. #pragma options align=reset
  2654. #endif
  2655.  
  2656. #if PRAGMA_IMPORT_SUPPORTED
  2657. #pragma import off
  2658. #endif
  2659.  
  2660. #ifdef __cplusplus
  2661. }
  2662. #endif
  2663.  
  2664. #endif /* __FILES__ */
  2665.  
  2666.